当前位置: 首页 > news >正文

测试用例`

1.什么是测试用例

测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素.

2.测试用例的万能公式(重点)

设计测试⽤例的万能公式: 功能测试+界⾯测试+性能测试+兼容性测试+易⽤性测试+安全测试

1.功能测试
功能测试是⼀个试图发现程序与其外部规格说明之间存在不⼀致的过程。外部规格说明是⼀份从
最终⽤⼾的⻆度对程序⾏为的精确描述。功能测试通常是⼀项⿊盒操作。在进⾏功能测试时,需要对
规格说明进⾏分析以提炼测试⽤例,本课程中讨论的具体设计测试⽤例的⽅法尤其适⽤于功能测试。
然⽽,不仅是⼯作中还是⾯试中,可能会存在需求不明确的功能?这种情况下该如何进⾏功能测试?
◦ 查找其他相关⽂档,来帮助理解所要测试的产品需要完成的⽬标;
◦ 尽量多参加项⽬组内的会议,⽐如需求讨论、设计讨论、计划讨论等,能够加深对产品的理解;
◦ 召集相关⼈员,对你整理的结果进⾏讨论,通过评审后,这份⽂档就可以作为依据来设计你的case了;
◦ 如果是⼀款已经上线的产品,可以多使⽤产品,有不懂的问产品经理;
◦ 也可以去看历史bug,可以了解到⼀些需要关注的东西。

2.界⾯测试
对软件界⾯上所有的内容都需要进⾏测试。
要求:
◦ 整体界⾯测试界⾯的实现与设计图要求⼀致。
◦ 界⾯元素测试
▪ 控件操作验证

3.性能测试
性能测试和功能测试的区别是:功能测试检查软件是否做了,⽽性能测试测试软件做的好不好。

4.兼容性测试
软件是部署在硬件系统之上,并依赖所需要的软件环境。如QQ可以在PC端打开,也可以在移动
端打开;移动端⼜分为IOS系统和Android系统,且市⾯上⼿机⼜有不同的品牌、不同的机型、不同
的版本。软件是否能够在不同的环境下正确运⾏需要测试⼈员进⾏验证。
问题:既然市⾯上有众多版本的机器,那么在执⾏兼容性测试时难道所有的机型都需要全⾯覆盖吗?
选取标准:
• 优先选择使⽤当前产品top级别的机型进⾏测试
实际在企业中,后台是可以获取到使⽤产品的机型,并以报表的形式统计在后台,供产品⼈员或
其他⼈员制定策略参考。
• 选择主流的浏览器/机型进⾏测试

5.易⽤性测试
易⽤性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使⽤过
该产品,作为⼀个新⽤⼾,对当前产品是否能够快速适⽤产品的使⽤流程。


6.安全测试
安全测试和性能测试⼀样都是⽐较⼤的领域。常⻅的安全问题如:
隐私数据明⽂显⽰。
参数未强校验导致SQL注⼊。
越权:普通⽤⼾也可以执⾏管理员权限的操作。

几个测试用例举例:

1.针对无畏契约英雄设计测试用例

2.针对登录页面设计测试用例

 3.场景题:针对优惠券设计测试用例(注意:优惠券可以叠加使用,并且不会冲突)

场景题:优惠券:有三种优惠:

1.某⼀店铺对指定商品打五折

2.全场满300减50(淘宝机制)

3.同⼀家 店的同⼀商品针对第⼆件打⼋折根据这三种优惠来设计测试⽤例


3.弱网测试

弱网测试是指用户在访问网站的过程中出现的网络问题

页面响应时间是否可以接受.

安全角度:是否包含dns劫持,登录ip更换频繁等

进行弱网测试我们一般使用抓包工具(Fiddler),通过抓包修改请求的上行速率和响应的下行速率

将上行速率和下行速率降低我们观察

进行弱网测试后我们发现页面还是可以正常打开


4. 设计测试用例的方法

4.1 等价类法

等价类法就是依据需求将输入划分为若干个等价类.比如我们在注册账号的时候,要求输入长度限制为6~15个字符.我们把所有的情况整合形成一个集合.此时我们只需要在这个集合内抽取一个实例进行测试,假如我们测试10个字符,如果通过测试,我们就认为整个等价类就通过测试.

等价类分为:有效等价类和无效等价类.

还是以注册账号的用户名长度进行举例,规定长度为6,15个字符,那么[6,15]区间的集合就称为有效等价类,而除了这个集合之外的剩下的我们也整合成一个集合就称为无效等价类


4.2 边界值

边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界

边界值包含:边界值和次边界值.

当我们规定注册账号的用户名是大于等于6并且小于等于15   [6,15]的时候

边界值:6位,15位  就是有效等价类;次边界值:5位或者16位就是无效等价类

当我们规定注册账号的用户名是大于6并且小于15    (6,15)的时候

边界值:6位,15位就是无效等价类;次边界值:7位,14位就是有效等价类


4.3 场景法

现在的软件⼏乎都是⽤事件触发来控制流程的,事件触发时的情景便形成了场景,⽽同⼀事件不同的触发顺序和处理结果就形成事件流.
就是我们平时制定好计划之后原本是按照计划走,但是中间可能会出现小插曲.在每个环节都可能会存在变化

在测试中也要多考虑这些容易出现这些正常流程之外的情况.

还是以注册账号举例

 全面发散性考虑,对于我们测试是很有帮助的.


4.4 正交法

学习正交法,我们首先要学习下正交表

最简单的正交表是L4(2^3),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性


正交表的组成 

正交表的性质:
每⼀列中,不同的数字出现的次数相等。
任意两列中数字的排列⽅式⻬全⽽且均衡
正交表的性质非常重要,通过正交表的性质. 正交法的⽬的是为了减少⽤例数⽬。⽤尽量少的⽤例覆盖输⼊的两两组合.
正交法的测试步骤:
1. 找到因素和⽔平
2. ⽤allparis⼯具⽣成正交表
        a. 将因素和⽔平写⼊Excel表格中
        
        b. allparis⽬录下创建新的⽂本⽂件new.txt,复制Excel中的因素和⽔平,直接粘贴到⽂本中保存并退出
        
        c. 使⽤allparis命令⽣成正交表:allparis.exe new.txt>zhengjiao.txt
        
3. 根据正交表编写测试⽤例
4. 补充遗漏的重要测试⽤例

4.5 判定表法

需求:⽤⼾输⼊的账号中包含admin字符,或者通过内部链接进⼊注册⻚⾯,提交注册按钮成为管理员⾝份;反之⽆管理员⾝份。

通过这个需求可以看出,不同的组合操作可能对应不同的结果。采⽤正交法⽆法解决这样的问题。⽽正交法能够解决需要考虑输⼊之间的组合关系对应不同结果的场景。
根据判定表法设计测试⽤例的步骤:
1. 确认需求中输⼊条件和输出条件
2. 找出输⼊条件和输出条件之间的关系
3. 画判定表
4. 根据判定表编写测试⽤例
账号包含admin字符,并且点击了提交按钮--管理员
内部连接进入,点击了注册按钮,--管理员
...........

5.测试分类

5.1 按照测试目标分类

5.1.1 界面测试

界面测试(简称UI测试).指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则,对我们软件界 ⾯所展⽰的全部内容进⾏测试和检查.

验证界⾯内容显⽰的完整性,⼀致性,准确性,友好性。⽐如界⾯内容对屏幕⼤⼩的⾃适应,换
⾏,内容是否全部清晰展⽰;
验证整个界⾯布局和排版是否合理,不同板块字体的设计,图⽚的展⽰是否符合需求;
对界⾯不同控件的测试,⽐如,对话框,⽂本框,滚动条,选项按钮等是否可以正常使⽤,有效
和⽆效的状态是否设计合理;
界⾯的布局和⾊调符合当下时事的发展。

5.1.2 功能测试

功能测试就是对产品的各功能进⾏验证,根据功能 测试⽤例 ,逐项测试,检查产品是否达到⽤⼾要
求的功能。
设计功能测试⽤例,参考产品规格说明书进⾏⽤例的编写,具体的测试⽤例需要使⽤⿊盒设计测试⽤例的⽅法,如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。

5.1.3 性能测试

我们在使⽤软件的时候有时会碰到软件⽹⻚打开时越来越慢,查询数据时很⻓时间才显⽰列表,软件运⾏越来越慢等问题,这些问题都是系统的性能问题引起的
要进⾏软件产品的性能问题,要对产品的性能需求进⾏分析,然后基于系统的性能需求和系统架构完成性能测试的设计和执⾏,最后要进⾏持续的性能调优。

5.1.4 可靠性测试

可靠性(Availability)即可⽤性,是指系统正常运⾏的能⼒或者程度,⼀般⽤正常向⽤⼾提供软件
服务 的时间占总时间的百分⽐表⽰。
可靠性 = 正常运⾏时间/(正常运⾏时间+⾮正常运⾏时间)* 100%

5.1.5 安全测试

安全性是指信息安全,是指计算机系统或⽹络保护⽤⼾数据隐私,完整,保护数据正常传输和抵御
⿊ke,病毒攻击的能⼒。
安全性测试属于⾮功能性测试很重要的⼀个⽅⾯,系统常⻅的安全漏洞和威胁如下
        输⼊域,如输⼊恶性或者带有病毒的脚本或⻓字符串;
        代码中的安全性问题,如SQL/XML注⼊
        不安全的数据存储或者传递
        数据⽂件,邮件⽂件,系统配置⽂件等⾥⾯有危害系统的信息或者数据;
        有问题的访问控制,权限分配等
        假冒ID:⾝份欺骗
        篡改,对数据的恶意修改,破坏数据的完整性

5.1.6 易用性测试

许多产品都应⽤⼈体⼯程学的研究成果,是产品在使⽤起来更加灵活和,舒适。软件产品也始终关注⽤⼾体验,让⽤⼾获得舒适,易⽤的体验,针对软件这⽅⾯的测试称之为易⽤性测试。

5.2 按照执行方式分类

5.2.1 静态测试

所谓静态测试(static testing)就是不实际运⾏被测软件,⽽只是静态地检查程序代码、界⾯或⽂档中可能存在的错误的过程。

5.2.2 动态测试

动态测试(dynamic testing),指的是实际运⾏被测程序,输⼊相应的测试数据,检查实际输出结

果和预期结果是否相符的过程,所以判断⼀个测试属于动态测试还是静态的,唯⼀的标准就是看是否运⾏程序。

⼤多数软件测试⼯作都属于动态测试

5.3 按照测试方式分类

5.3.1 白盒测试

⽩盒测试⼜称为结构测试或逻辑测试,它⼀般⽤来分析程序的内部结构,针对程序的逻辑结构来设
计测试⽤例进⾏测试
⽩盒测试的测试⽬的是,通过检查软件内部的逻辑结构,对软件中的逻辑路径进⾏覆盖测试;在程序不同地⽅设⽴检查点,检查程序的状态
⽩盒测试主要分为静态测试和动态测试两种。静态测试常⻅于桌⾯检查、代码审查、代码⾛查、代
码扫描⼯具
动态测试⽅法主要包含六种测试⽅法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖

简单解释白盒测试的动态测试方法:有下述两个判断语句

1.语句覆盖

每个语句都会执行一次

针对A and B:A为T且B为T
针对C or D:C为T或者D为T
得出⽤例:
⽤例1:A为T,B为T,C为T,D为F
2. 判定覆盖

A and B =>T   A=T && B=T

A and B=>F   A=F  B=T  ||  B=F A=T  ||  A=F, B=F

C or D => T   C=T   D=F|| C=F  D=T  ||  C=T  D=T

C or D => F   C=F   D=F

得出⽤例:
⽤例1(T):A=T B=T C=T D=F 
⽤例2(F):A=T B=F C=F D=F 
3.判定条件覆盖
结合判定覆盖和条件覆盖。
得出⽤例:
⽤例1:A=T B=T C=T D=T 
⽤例2:A=F B=F C=F D=F 
4.条件组合覆盖
A B ∣ C D
T T ∣ T T
T F ∣ T T
F T ∣ T T
F F ∣ T T
每一行就是一个测试用例
5.路径覆盖


⽩盒测试主要应⽤于单元测试阶段
先执⾏静态设计⽤例的⽅法,再执⾏动态设计测试⽤例的⽅法
设计⽤例⼀般使⽤路径测试,重点模块追加使⽤逻辑覆盖⽅法

5.3.2 黑盒测试

⿊盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使⽤、是否能适当的接收输⼊数据⽽输出正确的结果,满⾜规范需求。 所以,⿊盒测试⼜称之为数据驱动测试,只注重软件的功能
⿊盒测试⽤到的测试⽅法有,等价类,边界值,因果图,场景法,错误猜测法等

5.3.3 灰盒测试

灰盒测试,是介于⽩盒测试与⿊盒测试之间的⼀种测试,灰盒测试多⽤于集成测试阶段,不仅关注
输出、输⼊的正确性,同时也关注程序内部的情况。
但是,灰盒测试没有⽩盒测试详细和完整,⿊盒测试是覆盖产品范围最⼴的测试,因此灰盒测试基
本是不能够替代⿊盒测试,否则需要很⼤的代价,设计⾮常多的⽤例。

5.4 按照测试阶段进行分类

5.4.1 单元测试

就是将一个方法或者一个类看成一个单元进行测试,单元测试一般是开发人员来进行测试

与编码同步进⾏,针对软件最⼩组成单元进⾏测试, 主要采⽤⽩盒测试⽅法 ,从被测对象的内部结
构出发设计测试⽤例

 

5.4.2 集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采⽤适当的集成策略组装起来,对系统的接⼝及集成后的功能进⾏正确性检测的测试⼯作。集成主要⽬的是检查软件单位之间的接⼝是否正

测试对象:模块间的接⼝ 

测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模
块缺陷对系统的影响
5.4.3 系统测试
对通过集成测试的系统进⾏整体测试,验证系统功能性和⾮功能性需求的实现。
测试对象:整个系统(软、硬件)
测试内容:功能、界⾯、可靠性、易⽤性、性能、兼容性、安全性等
冒烟测试
在进行系统测试之前会先进行"冒烟测试"."冒烟测试"主要是检查代码的主流程是否走得通.
“冒烟测试”这⼀术语描述的是在将代码更改嵌⼊到产品
的源树中之前对这些更改进⾏验证的过程。在检查了代码后,冒烟测试是确定和修复 的最经
济有效的⽅法。冒烟测试设计⽤于确认代码中的更改会按预期运⾏,且不会 整个版本的稳定

 

冒烟测试的对象是每⼀个新编译的需要正式测试的软件版本,⽬的是确认软件主要功能和核⼼流程正常,在正式进⾏系统测试之前执⾏

如果冒烟测试通过,则测试⼈员开始进⾏正式的系统测试,如果不通过,则测试⼈员可以让开发⼈
员重新修复代码直到冒烟测试通过,再开始进⾏系统测试

回归测试
回归测试是指修改了旧代码后,重新进⾏测试以确认修改没有引⼊新的错误或导致其他代码产⽣错
误。
回归测试和冒烟测试都属于系统测试。
回归测试和冒烟测试的区别
1. 冒烟测试(Smoke Testing):
阶段: 通常在软件开发的早期阶段进⾏, 主要⽤于验证基本功能是否正常⼯作
⽬的: 确保软件的主要功能能够基本运⾏,以便在后续的详细测试阶段发现更深层次的问
题。
2. 回归测试(Regression Testing):
阶段: 在软件开发的后期, 通常在每次代码修改或新增功能后执⾏
⽬的: 确保已有的功能仍然正常⼯作,并且新的更改没有引⼊新的错误。⽬的是防⽌已有功
能因为代码修改⽽出现问题
虽然它们都属于系统测试, 但冒烟测试注重最基本的功能,⽽回归测试关注全⾯的功能 ,包括已
有功能和新添加的功能。这两种测试类型在测试策略中起到了不同的作⽤,帮助确保软件质量和稳定 性。
5.4.4 验收测试
针对⽤⼾需求,对通过系统测试的软件进⾏交付性测试,以确定系统是否满⾜验收标准,由⽤⼾
或其他授权机构决定是否接受系统。验收测试是部署软件之前的最后⼀个测试操作。它是技术测试的最后⼀个阶段,也称为交付测试
测试对象:整个系统(包括软硬件)。
测试⽅法:⿊盒测试

5.5按照实施组织划分

5.5.1 α测试
α测试⼜叫内测或者叫a测,其实都是⼀个涵义
α测试通常是公司内部的⽤⼾在模拟实际操作环境下进⾏的测试。α测试的⽬的是评价软件产品的
FLURPS(即功能、可使⽤性、可靠性、性能和⽀持)。 α测试不能由程序员或测试员完成。
5.5.2 β测试
β测试⼜叫公测或者叫b测
β测试由软件的最终⽤⼾们在⼀个或多个场所进⾏,这⾥就可以理解为,β测试是正式⽤⼾中的⼀部 分,他们在任意的场合来使⽤软件,⽬的是为了发现软件是否存在⼀系列的问题
这里就是指的就像是游戏在上线之前,会找到一批玩家先体验一番.看是否存在bug

α测试与β测试的区别:
测试的场所不同:α测试是在公司内部进⾏测试的,但是β测试是在⽤⼾环境下进⾏测试的
α测试的环境是受开发⽅控制的,⽤⼾的数量相对⽐较少,时间⽐较集中。β测试的环境是不受开发
⽅控制的,⽤⼾数量相对⽐较多,时间不集中。
测试执⾏时机不同:α测试先于β测试执⾏。通常是α测试通过后,在进⾏β测试

相关文章:

测试用例`

1.什么是测试用例 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素. 2.测试用例的万能公式(重点) 设计测试⽤例的万能公式: 功能测试界…...

React 中的错误边界(Error Boundaries),如何使用它们捕获组件错误

大白话React 中的错误边界(Error Boundaries),如何使用它们捕获组件错误 在 React 里,错误边界就像是一个“小卫士”,专门负责在组件出现错误时挺身而出,避免整个应用因为一个小错误就崩溃掉。接下来我会详…...

往期项目shader着色器实践效果应用合集

1、管路混色 2、水管水流效果 3、水管流入到流完效果 4、加热冷却 两 色混色 示意 XX、毒蘑菇测试效果...

go-zero: sqlx 对timestamp 格式数据问题

1.问题背景 对于goctl自动生成的model代码文件,对于非null的时间数据列,一定会产生如下问题 deleted_at\": unsupported Scan, storing driver.Value type \u003cnil\u003e into type *time.Time" 例如以上的问题,不论是插入还…...

systemd-networkd 的 *.network 配置文件详解 笔记250323

systemd-networkd 的 *.network 配置文件详解 笔记250323 查看官方文档可以用 man systemd.network命令, 或访问: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html 名称 systemd.network — 网络配置 概要 network.network 描述 一个纯…...

Axure项目实战:智慧城市APP(四)医疗信息(动态面板、选中交互应用)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP医疗信息模块 主要内容:医疗信息模块原型设计与交互 应用场景:医疗信息行业 案例展示: 案例视频&…...

机器学习正则化技术:Ridge、Lasso与ElasticNet全解析

机器学习中的正则化技术 在机器学习中,正则化技术(如 Ridge 和 Lasso)主要用于解决过拟合问题,通过限制模型复杂度提高泛化能力。以下是详细说明及实例代码: 一、正则化解决的问题 过拟合:模型在训练集表…...

【汽车传感系统架构:借助传感获取安全】

为了将车辆自动化提升到一个新的水平,设计人员研究了 LiDAR 等传感器选项的权衡,并着眼于传感系统架构。 本文引用地址:https://www.eepw.com.cn/article/202503/468584.htm 每年,约有 120 万人死于道路交通事故,还有…...

3.25-2request库

request库 一、介绍request库 (1)requests是用python语言编写的简单易用的http库,用来做接口测试的库; (2)接口测试自动化库有哪些? requests、urllib 、urllib2、urllib3、 httplib 等&…...

LangChain4j(1):初识LangChain4j

1 什么是LangChain和LangChain4j LangChain是一个大模型的开发框架,使用LangChain框架,程序员可以更好的利用大模型的能力,大大提高编程效率。如果你是一个lava程序员,那么对LangChain最简单直观的理解就是,LangChain…...

UMI-OCR Docker 部署

额外补充 Docker 0.前置条件 部署前,请检查主机的CPU是否具有AVX指令集 lscpu | grep avx 输出如下即可继续部署 Flags: ... avx ... avx2 ... 1.下载dockerfile wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Do…...

python每日十题(9)

外存储器的容量一般都比较大,而且大部分可以移动,便于在不同计算机之间进行信息交流。外存储器中数据被读入内存储器后,才能被CPU读取,CPU不能直接访问外存储器。本题答案为A选项。 进程是指一个具有一定独立功能的程序关于某个数…...

Jenkins最新版,配置Gitee私人令牌和Gitee凭证

jenkins 配置Gitee私人令牌和凭证 jenkins 版本:Jenkins 2.492.2 Gitee配置 Jenkins配置gitee插件,需要先申请gitee私钥。 安装gitee插件 申请Gitee私人令牌,后面还需要添加凭证。 测试链接,并保存 配置凭证...

AI 生成内容(AIGC):从文本到视频的完整流程

近年来,AI 生成内容(AIGC, AI-Generated Content) 迅速发展,从文本、图片到音频、视频,AI 在创意内容生成方面展现出了惊人的能力。AIGC 不仅提升了内容创作效率,还降低了成本,使得普通用户也能…...

【漏洞复现】Apache Tomcat partial PUT文件上传反序列化漏洞复现(CVE-2025-24813)

❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 0x00 免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用;任何个人/组织须在合法合规…...

Spring JDBC Template与事务管理:基于XML与注解的实战指南

摘要 本文深入解析Spring JDBC Template与事务管理的核心技术,结合XML配置与注解方式两种主流方案,通过转账案例完整演示数据库操作与事务管理的最佳实践。文章涵盖JDBC Template的核心用法、事务配置语法、常见问题及性能优化建议,帮助开发…...

自动化测试selenium(Java版)

1.准备工作 1.1.下载浏览器 自动化测试首先我们要准备一个浏览器,我们这里使用谷歌(chrome)浏览器. 1.2.安装驱动管理 每一个浏览器都是靠浏览器驱动程序来启动,但是浏览器的版本更新非常快,可能我们今天测试的是一个版本,第二天发布了一个新的版本,那么我们就要重构代码,很…...

【13】Ajax爬取案例实战

目录 一、准备工作 二、爬取目标 三、初步探索:如何判断网页是经js渲染过的? 四、爬取列表页 4.1 分析Ajax接口逻辑 4.2 观察响应的数据 4.3 代码实现 (1)导入库 (2)定义一个通用的爬取方法…...

tar包部署rabbitMQ

部署erlang: 有网使用: sudo apt-get update sudo apt-get install libncurses5-dev libncursesw5-dev sudo yum install ncurses-devel 无网使用 tar zxvf ncurses.tar.gz mkdir ncurses cd ncurses-6.3/ ./configure --with-shared --without-debu…...

SpringMVC请求与响应深度解析:从核心原理到高级实践

一、SpringMVC架构与核心组件剖析 SpringMVC是基于Java的MVC设计模型实现的轻量级Web框架,其核心架构围绕前端控制器模式构建。以下是核心组件及其作用: DispatcherServlet 作为前端控制器,所有请求首先到达此处。它负责请求分发、协调组件协…...

CentOS 8 安装 Redis 全流程指南:从基础部署到远程安全配置

一、环境准备 本文以 CentOS 8.5 为例,演示 Redis 的安装、密码设置及远程连接配置。在开始前,请确保: 已通过 SSH 连接至服务器(建议使用 Root 权限)系统已联网基础工具包已安装:sudo dnf update -y &am…...

【机器学习】使用Python Spark MLlib进行预测模型训练

Spark MLlib 是 Spark 的机器学习 (ML) 库。它的目标是使实用的机器学习变得可扩展且易于使用。从高层次上讲,它提供了以下工具: ML 算法:常见的学习算法,如分类、回归、聚类和协同过滤特征化:特征提取、转换、降维和…...

简单聊聊Oracle和MySQL数据库的区别和使用场景

对于IT的技术人员,MySQL是非常熟悉的开源数据库,在各个行业被广泛应用。但是对于Oracle数据库,很多专业的IT从业人员不太了解,今天就来聊一聊Oracle和MySQL的一些区别。 1. 使用场景 首先MySQL是在各种IT公司或者非IT公司广泛应用…...

qt QOffscreenSurface详解

1、概述 QOffscreenSurface 是 Qt 中用于离屏渲染的一个类。它允许在不直接与屏幕交互的情况下进行 OpenGL 渲染操作,常用于生成纹理、预渲染场景等。通过 QOffscreenSurface,可以在后台创建一个渲染表面,进行绘制操作,并将结果捕…...

【软件测试】:软件测试实战

1. ⾃动化实施步骤 1.1 编写web测试⽤例 1.2 ⾃动化测试脚本开发 common public class AutotestUtils {public static EdgeDriver driver;// 创建驱动对象public static EdgeDriver createDriver(){// 驱动对象已经创建好了 / 没有创建if( driver null){driver new EdgeDr…...

springboot使用netty做TCP客户端

1、服务端文档说明 ## 1. 概述本文档描述了Socket模拟器的通信协议实现细节,包括数据包格式、字节序、编码方式等信息。## 2. 通信基础### 2.1 连接方式 - 协议类型:TCP - 网络层:IPv4 (AddressFamily.InterNetwork) - 传输方式:流…...

【NLP 49、提示工程 prompt engineering】

目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…...

Axure RP设计软件中的各种函数:包括数字、数学、字符串、时间及中继器函数,详细解释了各函数的用途、参数及其应用场景。

文章目录 引言函数分类数字函数数学函数字符串函数时间函数函数中继器函数引言 在axure交互设计时,函数可以用在条件公式和需要赋值的地方,其基本语法是用双方括号包含,变量值和函数用英文句号连接。 在交互事件编辑器中通过fx按钮插入函数表达式,例如设置文本内容为: …...

Logback使用和常用配置

Logback 是 Spring Boot 默认集成的日志框架,相比 Log4j,它性能更高、配置更灵活,并且天然支持 Spring Profile 多环境配置。以下是详细配置步骤及常用配置示例。 一、添加依赖(非 Spring Boot 项目) 若项目未使用 Sp…...

赛季7靶场 -- Code -- HTB writeup(Just hint)

本系列仅说明靶场的攻击思路,不会给出任何的详细代码执行步骤,因为个人觉得找到合适的工具以实现攻击思路的能力也非常重要。 1.首先我们对靶场进行了Nmap扫描,很快我们发现了Web应用端口何SSH端口 2.显然我们无法直接突破ssh,因为…...

第十三届蓝桥杯单片机省赛程序设计试题

目录 试题 各程序块代码 init.c main.c other.h other.c key.c seg.c onewire.c部分 ds1302.c部分 试题 各程序块代码 init.c #include "other.h"void init74hc138(unsigned char n){P2(P2&0x1f)|(n<<5);P2&0x1f; } void init(){P00x00;in…...

【QT】Qt creator快捷键

Qt creator可以通过以下步骤快捷键査看调用关系&#xff1a; 1.打开代码文件。 2.将光标放在你想要查看调用关系的函数名上。 3.按下键盘快捷键 CtrlshiftU。 4.弹出菜单中选择“调用路径”或“被调用路径” 5.在弹出的窗口中可以查看函数的调用关系 折叠或展开代码快捷键&…...

Flask接口开发--GET接口

安装Flask 1.安装命令&#xff1a; pip3 install Flask2.查看Flask版本&#xff1a; pip3 show flask如图我的Flask版本号是2.0.3 项目创建 1、在PyCharm中&#xff0c;我们点击左上方的 file&#xff0c;选择 New Project&#xff0c;创建一个Flask项目。&#xff08;Py…...

爬虫豆瓣电影

以下是一个简单的使用 requests 和 BeautifulSoup 库来爬取网页标题的 Python 爬虫示例代码&#xff0c;以爬取豆瓣电影 Top250 首页为例&#xff08;注意遵守网站的 robots.txt 协议&#xff0c;不要过度爬取给网站造成负担&#xff09;&#xff1a; 首先确保你已经安装了 re…...

[ ] 前后端连接 结合常见故障场景和解决

调试流程图&#xff1a; 一、基础网络检查 IP与端口验证 确认前端请求的URL与后端实际运行的IP和端口完全一致&#xff08;如http://192.168.1.100:8080/api&#xff09;使用ping命令测试网络连通性&#xff0c;telnet检查端口是否开放&#xff1a; telnet 192.168.1.100 80…...

MyBatis-Plus 的加载及初始化

在 Spring Boot 启动过程中&#xff0c;MyBatis-Plus 的加载和初始化涉及多个阶段的工作。这些工作包括 MyBatis-Plus 自身的配置解析、Mapper 接口的扫描与注册、SQL 语句的动态注入以及底层 MyBatis 的初始化等。以下是对整个过程的详细分析&#xff1a; 1. Spring Boot 启动…...

LangChain开发(九)基于Rag实现文档问答

文章目录 关联阅读Rag是什么&#xff1f;Rag工作流索引&#xff08;Indexing&#xff09;检索和生成&#xff08;Retrieval and generation&#xff09; 文档问答实现流程代码实现 源码地址参考资料 关联阅读 LangChain开发&#xff08;一&#xff09;LangChain介绍和对话demo…...

Netty——TCP 粘包/拆包问题

文章目录 1. 什么是 粘包/拆包 问题&#xff1f;2. 原因2.1 Nagle 算法2.2 滑动窗口2.3 MSS 限制2.4 粘包的原因2.5 拆包的原因 3. 解决方案3.1 固定长度消息3.2 分隔符标识3.3 长度前缀协议3.3.1 案例一3.3.2 案例二3.3.3 案例三 4. 总结 1. 什么是 粘包/拆包 问题&#xff1f…...

探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求

以下是ProxyPin的简单介绍&#xff1a; - ProxyPin是一个开源免费HTTP(S)流量捕获神器&#xff0c;支持 Windows、Mac、Android、IOS、Linux 全平台系统- 可以使用它来拦截、检查并重写HTTP(S)流量&#xff0c;支持捕获各种应用的网络请求。ProxyPin基于Flutter开发&#xff0…...

【例3.5】位数问题(信息学奥赛一本通-1313)

【题目描述】 在所有的N位数中&#xff0c;有多少个数中有偶数个数字3?由于结果可能很大&#xff0c;你只需要输出这个答案对12345取余的值。 【输入】 读入一个数N(N≤1000)。 【输出】 输出有多少个数中有偶数个数字3。 【输入样例】 2 【输出样例】 73 【题解代码】 #incl…...

python之selenium中的窗口切换

前提&#xff1a;触发一个事件打开一个新的窗口 1&#xff0c;先获取所有的句柄&#xff1a; handles driver.windowhandlers2&#xff0c;获取当前窗口 cururl driver.current_url3&#xff0c;循环遍历所有句柄 for handle in handles:driver.switch_to.window(handle)i…...

青少年编程与数学 02-011 MySQL数据库应用 20课题、连接与ORM

青少年编程与数学 02-011 MySQL数据库应用 20课题、连接与ORM 一、数据库连接基本概念连接过程连接状态连接池技术 二、Go语言连接MySQL数据库安装MySQL驱动导入相关包建立数据库连接检查连接状态执行SQL操作查询操作插入操作更新操作删除操作 完整示例 三、Python语言连接MySQ…...

Java 大视界 -- 基于 Java 的大数据分布式系统的监控与运维实践(155)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

三维空间中点、线、面的关系

三维空间中点、线、面的关系 点相对于平面的位置关系直线相对于平面的位置关系1.根据三点计算平面方程 //根据3点计算平面方程#include <iostream> #include <cmath> #include <vector>...

Spring JdbcTemplate 万字详解(通俗易懂)

目录 Δ前言 一、什么是JdbcTemplate&#xff1f; 1.定义&#xff1a; 2.作用&#xff1a; 3.环境搭建&#xff1a; 二、JdbcTemplate的简单使用 1.通过JdbcTemplate实现数据的添加&#xff1a; 2.通过JdbcTemplate实现数据的修改&#xff1a; 三、JdbcTemplate的进阶使用 …...

centos 7 搭建ftp 基于虚拟用户用shell脚本搭建

#!/bin/bash# 步骤1: 更新系统并安装vsftpd yum update -y yum install vsftpd -y# 步骤2: 创建虚拟用户信息文件并转换为数据库文件 cat << EOF > /etc/vsftpd/virtual_users.txt ftpvuser 123456 EOFdb_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsft…...

《Android低内存设备性能优化实战:深度解析Dalvik虚拟机参数调优》

1. 痛点分析&#xff1a;低内存设备的性能困局 现象描述&#xff1a;大应用运行时频繁GC导致卡顿 根本原因&#xff1a;Dalvik默认内存参数与硬件资源不匹配 解决方向&#xff1a;动态调整堆内存参数以平衡性能与资源消耗 2. 核心调优参数全景解析 关键参数矩阵&#xff1…...

【AI学习】概念了解

1,GPU 专门用于处理图形相关运算任务的微处理器,它起初主要聚焦于加速图形渲染,让计算机能够快速、流畅地显示高质量的图像、视频以及 3D 场景等内容,在电脑游戏、影视特效制作、动画设计等领域有着至关重要的作用。 与传统的中央处理器(CPU)相比,GPU 有着数量众多的核…...

WPF InkCanvas 控件详解

1. InkCanvas 是什么? InkCanvas 是 WPF 提供的一个手写绘图控件,它允许用户使用鼠标、触摸屏或手写笔在界面上进行绘图、标注等操作。 核心特点: ✅ 具备笔迹存储和管理功能。 ✅ 提供 Children 和 Strokes 两个集合,分别用于管理子控件和绘制的笔迹。 ✅ 通过 EditingM…...

数据库三级选择题(2)

C) 分布式数据库的事务管理包括恢复控制和并发控制&#xff0c;恢复控制一般采用的策略是基于两阶段提交协议 采用一定的计算方法定位数据的有 Ⅳ&#xff0e;散列&#xff08;哈希&#xff09;索引 下列提供逻辑独立性的是外模式/模式映像 UML所有活动有关判断的部分要用菱形表…...