JMeter知识点

一、JMeter作用及优缺点

作用:
1、接口测试
2、性能测试
3、压力测试
4、Web自动化测试
5、数据库测试
6、Java程序测试
优点:
1、开源、免费
2、跨平台
3、支持多协议
4、小巧
5、功能强大
缺点:
1、不支持IP欺骗
2、使用JMeter无法验证JS程序,也无法验证页面UI,所以必须要和Selenium配合来完成Web2.0应用的测试

二、什么是进程、线程、线程组?

进程:正在运行的程序
线程:是进程中的执行线索
线程组:进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组
三者的关系:一个进程可以包含多个线程组,一个线程组可以包含多个线程

线程组的作用:方便管理线程;可以通过一系列属性控制线程的执行

多个线程组,默认是并行执行的,可以在测试计划中进行修改独立运行每个线程组,变成顺序执行

三、JMeter线程组

1、新增修改实现时提交的数据是JSON格式的,需声明提交的数据的内容类型
2、可以使用http请求默认值实现被复用的字段的封装

四、JMeter参数化

参数化:就是动态的获取、设置或生成数据,是一种由程序驱动代替人工驱动的数据设计方案

参数化作用:通过参数化,可以提高脚本的编写效率以及编写质量

参数化方案,常见有四种:
1.用户定义的变量
2.CSV数据文件设置
3.用户参数
4.函数

常见函数:
__counter 计数器函数 TRUE(每个用户都有自己的计数器)FALSE(所用用户共用一个计数器)
__Random 随机函数
__time 获取当前时间的函数

五、直连数据库

概念:就是编写脚本让JMeter直接访问并操作数据库

作用:
1.可以将接口响应的结果与直连数据库响应的结果做对比,判断接口实现是否符合预期
2.较之于人工访问数据库,更高效快捷

直连数据库步骤:
1.jmeter不具备直连数据库功能,必须整合第三方jar包
2.配置数据库的连接信息
3.通过JDBC Request请求向数据库发送SQL语句并接收提取响应结果

六、断言

概念:让程序代替人工判断响应结果
作用:更安全;更高效;功能更强大(比如判断响应时间)

分类:
1.响应断言:判断状态码和响应体
2.大小断言:判断响应内容的字节长度
3.断言持续时间:判断响应时间

步骤:
1.编写测试脚本
2.为被盘点的取样器添加断言组件
3.直接运行查看结果
断言通过:无提示
断言失败:给出错误提示

七、接口业务测试

测试接口业务时,是将若干个接口串联在一起集成测试,而不同接口在组织衔接时,会遇到执行逻辑与数据传递的问题。
JMeter提供了专门的解决方案:接口间的逻辑组织可以通过逻辑控制器实现,而不同接口间的数据传输可以通过关联实现

逻辑控制器

概念:控制取样器执行顺序的组件实现,之前添加的取样器是无差异的都执行,使用逻辑控制器之后,可以控制取样器的执行顺序(分支+循环)
作用:组织业务,测试接口业务

分类
1.如果(if)控制器:分支实现
2.forEach控制器:循环往复实现
3.循环控制器:循环往复实现

实现
1.搭框架,测试计划,线程组,结果树,声明一个用户定义的变量
2.核心:添加if控制器,子级添加取样器(和之前实现不同,控制器和取样器存在父子级关系)
3.执行并查看结果

线程组属性可以控制循环次数,那么和循环控制器有什么区别?
线程组属性控制组内所有取样器的执行次数,而循环控制器可以控制组内部分取样器的循环次数,后者精度更高

关联

概念:上一个请求的响应结果作为下一个请求提交的参数,就是关联
作用:测试接口业务

实现:
1.搭框架,编写请求
2.核心:取出第一个请求的值,传给第二个请求
${变量名}的方式传值

关联提取请求结果值的方式有两种:
1.XPath提取器:
2.正则表达式提取器
建议:如果从标签文档提取数据建议使用XPath提取器,如果从非标签文档提取数据建议使用正则表达式提取器
注意:正则表达式提取器既可以使用于普通文本也可以使用于标签文本,作用比XPath更广。

跨线程组关联:
请求A和请求B在不同的线程组,且设置了线程组的执行顺序,可以保证A先执行,B后执行,但是关联失败?
原因:提取器提取出的变量作用域局限于当前线程组,其他线程组不可以直接调用
思想:将请求A中提取的结果导出到公共空间(可以被不同雄线程组共享),请求B再从公共空间调用该变量

实现:
1、调用后置处理器中的BeanShell取样器;将请求A的数据导出到公共空间(__setProperty)
2、请求从公共空间调用函数(__property)

八、性能测试

概念:模拟各种正常的、峰值的测试环境,检测程序的各项性能指标是否能够达标
作用:
1、技术选型
2、测试当前程序所能支持的最大负载
3、发现程序中的性能瓶颈
4、提升用户体验

实现:
JMeter中内置了定时器,可以实现时间模式的相关性能测试

同步定时器:

实现步骤:
1、搭框架,测试计划,线程组,取样器,结果树,指定线程组的线程数属性值
2、核心:添加定时器的synchronizing timer(集合点组件)
3、运行并查看结果。可以用聚合报告查看
注意点:当用户数不能整除集合点组件的一组用户数属性时,如果超时时间是0,会导致程序挂起

常量吞吐定时器

QPS:Query per Seconds每秒查询数(查询率),每秒访问多少次服务器
实现步骤:
1、搭框架,测试计划,线程组,取样器,结果树,聚合报告;循环次数=访问频率*持续时间
2、核心:添加QPS访问频率控制的相关组件
3、执行并查看结果

九、接口性能测试分布式

概念:多台机协作,以集群的方式完成测试任务
作用:性能测试时,需要模拟多用户,JMeter中使用线程模拟用户的,而创建线程与管理时比较耗费资源的,对于操作系统而言,创建的线程是有限的,当模拟的用户量较大时使用分布式。
优点:可以提高测试效率

实现:

基本架构
控制机:负责任务分配
执行机:负责任务实现
工作流程:
1.控制机需要制定测试任务,并下发到执行机;
2.执行执行任务并将结果返回控制机
3.控制机做结果汇总

分布式演示
前提:分布式环境已经搭建完毕
1、启动集群(控制机、执行机)
控制机:ApacheJmeter.jar
执行机:Jmeter-server.bat
2、编写测试计划
线程数=总线程数/执行机台数
3、将测试计划下发到执行机(执行机会将结果自动返回给控制机)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值