参考:https://www.bilibili.com/video/BV1nt411s78b?p=5
- 性能测试案例
- jmeter元件的作用域和执行顺序
- 参数化
- 参数化-C$V Date Set Config
- 随机参数化
一:性能测试案例
被测网址:https://blog.csdn.net/weixin_42717928
指标:响应时间、错误率
步骤:
1:给测试计划添加线程组
2:给线程组添加Http请求(一般是这个)
名称:用于标识一个取样器
服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址
端口号:目标服务器的端口号,默认为80
协议:向目标服务器发送HTTP请求时的协议,可以是http或者https,默认是http
方法:发送http请求的方法,可用方法包括get、post、head、put、options、trace、delete等
路径:目标URL路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送http请求后得到的响应应是302/301时Jmeter自动重定向到新的页面
Use Keep Alive:jmeter和目标服务器之间是有keep-Alive方式进行HTTP通信,默认选中
Use multipart/from-data for HTTP POST:当发送HTTP POST请求时,使用Use multipart/from-data方法发送,默认不选中
同请求一起发送参数:在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应url中的名称=值)
同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟
3:线程组设置
总共运行时间:5*10=50秒
调度器:可以灵活设置时间
4:查看结果树和聚合报告
点击运行,保存一下
运行后我发现请求全部错误
解决方法
再次运行后查看聚合报告
注意:时间单位是毫秒
Samples:样本,表示这次测试中一共发出了多少次请求
Average:平均相应时间,默认是单个Request的平均相应时间。当使用了Transaction Controller时,也可以Transaction为单位显示平均相应时长
Median:中位数,也就是50%用户的相应时长
90%Line:90%用户的相应时长
Min:访问页面的最小相应时长
Max:访问页面的最大相应时长
Error%:错误请求的数量/请求的总数
Throughput:默认情况下表示每秒完成的请求数,当使用了Transaction Controller时,也可以表示类似LR的Transaction per Second数
KB/Sec:每秒从服务器接收到的数量
注意:保存文件的后缀是jtl
还有一个问题,在jmeter运行都是累加的,可以清除全部
最后一个问题,如果只有一个请求,可以这样配置
也可以把查看树和报告放在博客下(可以拖动),实现效果是一样的,但是如果有多个http请求,那放置的位置就有说法了,这个后续讨论。
二:jmeter元件的作用域和执行顺序
元件的作用域
比如前置处理程序:新建后可以拖动,这个要放在请求之前
作用域可以从各个元件的层次结构判断每个元件的作用域
执行顺序:配置元件、前置、定时器、sampler、后置、断言、监听器
如果在同一个作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行
三:参数化
先建好这些
导入badboy录制的内容
我改一下名,搜索关键字,然后添加变量和用户,下面就是参数化列表
然后替换
跑起来后发现只有一个
解决方法:线程组的线程属性需要做修改,因为参数是两个,那么线程数可设置为2
再跑一次,没问题了
加个响应断言(相当于检查点)、断言结果、断言持续时间
这里要改一下,要跟着参数化去变化,能持续去匹配
如果断言结果像这样只有一行说明是成功的
像这样是不成功的
四:参数化-C$V Date Set Config
在D盘新建一个test.txt文件
禁用,不让之前的文件干扰这次的测试
运行后没问题
搜一下哈哈,也能搜出来
如果出现乱码,解决方法,配置utf-8或者gbk等
熟悉里面的内容
变量名称:多个变量可以引用同一个文件,用逗号分隔
分隔符:默认是逗号
五:随机参数化
打开函数助手对话框(旧版本的可能在选项里面)
我这里复制不了。。。