参考资料
线程理解,并发理解:https://blog.csdn.net/hsd412237463/article/details/49929173
结果分析:https://blog.csdn.net/zwc2xm/article/details/78895165
举例:https://blog.csdn.net/wuxuehong0306/article/details/49902989?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
举例:https://blog.csdn.net/lykangjia/article/details/56666893
脚本录制:https://blog.csdn.net/zha6476003/article/details/79770414
指标:https://www.cnblogs.com/insane-Mr-Li/p/10101283.html
Cookie使用与持久化:https://www.cnblogs.com/scarlett-hy/p/10442074.html
目录
0 快速新建
1 基本操作使用
2 脚本录制
3 使用场景和功能一览
3.1 并发测试
3.2 多场景并发测试
3.3 接口测试
4 特殊操作和注意点
4.1 如何获取HTTP头信息
4.2 cookie获取与持久化
4.3 登陆方法,authorization
零 快速新建
- 转换为中文版
- 新建一个线程组
新建线程组后,设置线程个数,循环字数等
- 新建Http请求
这里输入接口测试地址或者压力测试的地址,可以是url可以是ip,注意写法,注意端口号,注意协议(https/http)
- 新建结果查看,包括两个
- 新建断言,这里选择最简单的相应断言
相应断言里可以断言不同的数据,可以测响应码是否包括200,也可以断言是否包含指定内容。断言判断的依据可以查看返回值里面都有哪些,也可以跟开发要。
一 Jmeter基本使用
-
添加新的线程组
TestPlan-Add-Threads(user)-Thread Group
-
添加http头文件
Thread-add-Config Element-HTTP Header Manager
-
添加HTTP Request
Thread-add-Sampler-HTTP Request
-
添加结果监视
-
运行并查看结果
response code =200,Error%=0.00
查看【聚合报告】的参数。
- Label----每个请求的名称,比如HTTP请求等;
-
Samples----发给服务器的请求数量;
- Average----单个请求的平均响应时间;
- Median----50%请求的响应时间;
- 90%Line----90%请求响应时间;
- 95%Line----95%请求响应时间;
- 99%Line----99%请求的响应时间;
- Min----最小的响应时间;
- Max----最大的响应时间;
- Error%----错误率=错误的请求的数量/请求的总数;
- Throughput----吞吐量即表示每秒完成的请求数;
- Received KB/sec----每秒从服务器端接收到的数据量;
- Sent KB/sec----每秒从客户端发送的请求的数量。
二 脚本录制和编写
2-1. 脚本结构
通过hashTree来分割结构和模块,再依次划分下一个模块内容
- TestPlan
- ThreadGroup
- HTTPSamplerProxy
- HeaderManager
- ResultCollector
举例其中一个模块
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="4.0" jmeter="4.0 r1823414">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
</hashTree>
2-2. 参数取得
登录到被测试页面 →F12→Network→点击测试功能→点F12画面的doPricing(点击测试功能后触发的name)→Headers→General→Request URL
脚本或界面设置参数
三 多场景测试
测试需求如下:对业务A、业务B、业务C、业务D、业务E,5个业务按并发比例要求进行100个用户并发的压力测试
1.创建一个测试计划;
2.在该计划下添加5个线程组,分别是对业务A、业务B、业务C、业务D、业务E;
3.分别设置线程组业务A、业务B、业务C、业务D、业务E的线程数为:40、10、20、25、5(总并发量为100,按并发比例设置并发用户数)
4.在该计划下添加测试结果监控;
四 接口测试
查看结果
对于postman
五 接口测试的文档
六 cookie持久化
参考:https://www.cnblogs.com/scarlett-hy/p/10442074.html
接口测试,需要登陆,三种方式,获取token,session,cookie,但三种都有有效期,每次关闭网页后,脚本要对应重新修改
方法:添加http cookie manager
七 如何用Jmeter登陆
方法1:直接从数据库中获取账号和密码
1)添加线程
2)添加定时器-Synchronizing Timer,设置集合点N(Number of XXX),用户数量超过N时同时请求登陆操作
3)配置原件-JDBC Connection Configuration
4)添加Sampler-JDBC request(从数据库获取登陆账号和密码)
5)添加登陆请求
方法2:对账户密码参数化
1)添加CSV Data Set Config进行参数配置
2)请求调用
八 身份验证
1) 添加 HTTP 授权管理器(配置元件 > HTTP 授权管理器)
2) 添加授权信息
3) 添加请求
4) 参考结果