录制第一个jmeter性能测试脚本2(http协议)_图书管理系统
我们手工编写了一个测试计划,现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似:让5个用户在2s内登录图书管理系统,然后进入 页面进行查看。
目录
一.性能测试脚本录制的原理
二、性能测试脚本录制的实操(http)
1.搭建和启动被测环境
2.创建测试计划
3.为测试计划添加3个配置元件
4.添加线程组
5.为测试计划添加简单控制器“登录”
6.为测试计划添加HTTP测试脚本录制器
7.浏览器中设置代理服务器,指向HTTP测试脚本录制器
8.启动HTTP测试脚本录制器
9.浏览器上执行你要录制的操作
10.录制结束后停止录制
11.取消浏览器的代理设置
12.为脚本增加监听器,以便收集测试结果
13 保存脚本后,运行脚本,
14.添加定时器,模拟用户停顿
15.将第一个请求都设置为 获取嵌入资源
16.执行脚本
17.取消对嵌入资源的请求选项
18.增加响应断言
19.设置模拟用户数和启动时间
20.增加服务器性能监控
欢迎访问我的免费课程 PPT、安装包、视频应有尽有!
软件测试与质量保证 (xueyinonline.com)编辑https://www.xueyinonline.com/detail/219145327https://www.xueyinonline.com/detail/219145327
一.性能测试脚本录制的原理
首先我们来了解下jmeter性能测试脚本录制的原理,然后再来实操。
当我们打开某个网站的页面时,请求会被浏览器发送到网站服务器,服务器将响应返回给浏览器。
如果,我们的请求发送到了jmeter的代理服务器,然后由代理服务器转发到网站服务器,那么代理服务器就会把我们发送的请求录制下来。
如果我们能录制下来用户的请求,我们就能模拟多个用户发送请求,从而达到性能测试的目的。
二、性能测试脚本录制的实操(http)
步骤前面几步与手工测试的几乎一样:
1.搭建和启动被测环境
图书管理系统环境的安装包以及启动方法如下:
链接: https://pan.baidu.com/s/1ekG9nl7KEZ8hPDOfcbWjoA?pwd=aqyy 提取码: aqyy
解压后,按照文档解压启动。浏览器上输入网址可以打开图书管理系统
http://L**ocalhost**:9000
特别注意:
有的计算机使用127.0.0.1或者locahost时,jmeter录制不到脚本,因此建议将127.0.0.1替换为你的本机ip地址。例如: http://你部署的服务器ip**:9000**
输入账号:admin 123456
2.创建测试计划
创建测试计划并命名xxxx图书管理系统测试计划。 其中xxx请同学们改为你的姓名奥
添加注释:第一个录制的JMeter脚本(https)
3.为测试计划添加3个配置元件
为测试计划添加缓存管理器、cookie管理器以及HTTP请求默认值
1)在线程组上点击右键菜单Add -> Config Element -> HTTP Cache Manager添加缓存管理器。缓存管理器在整个测试中将帮助管理用户缓存;
2)在线程组上点击右键菜单 Add -> Config Element -> HTTP Cookie Manager添加cookie管理器,它会在测试执行期间管理cookie。(也就是说jmeter要像真实用户使用浏览器访问网站时,浏览器会缓存和cookie管理一样,帮我们管理缓存和cookie)。
3)在线程组上点击右键菜单Add -> Config Element -> HTTP Request Default来设置http请求默认值,
设置protolcal为http
设置Server Name or Ip设置为: 改为你图书管理系统部署所在计算机的ip地址奥
设置port为9000(空缺表示是缺省端口80)
查看本机ip地址的方法,在命令行中输入:ipconfig, 即可查看本机ip地址
4.添加线程组
如下图所示,在测试计划上点击右键菜单 Add->Thread -> Thread Group 添加线程组
线程组名:线程组1,暂时设置模拟用户数为 1(带后期脚本调试完成后,再来设置用户数和启动时间),
5.为测试计划添加简单控制器“登录”
名称为:登录
6.为测试计划添加HTTP测试脚本录制器
在测试计划上点击右键菜单 Add -> Non Test Elements -> HTTP(S) Test Scripts Recorder
如下图所示,可以设置录制脚本的目标控制器
为了录制时不录制其他网站的信息。可以对代理服务器做url过滤设置。在 URL Patterns to Include 下添加 对url的过滤条件
如下图所示,
可以根据需要设置要请求url的包含模式,即url符合指定条件的请求才会被录制
大家也可以根据需要设置要请求url的排除模式,即url符合指定条件的请求将不会被录制
例如。 采用 .***你要录制的域名*.\ 的方式( .*代表任意字符串),注意,如果要匹配一个点,则需要转义 \.
我输入的信息为:.*10\.9\.31\.5:9000.*
7.浏览器中设置代理服务器,指向HTTP测试脚本录制器
下面我来设置浏览器的代理服务器为本机127.0.0.1,端口号为8888(即指向了Jmeter代理服务器,即浏览器的请求都转发到了jmeter脚本录制器)。
下面以chrome浏览器为例说明,设置方法如下:
8.启动HTTP测试脚本录制器
点击HTTP测试脚本录制器的右侧面板上start按钮,启动录制;
系统会弹出如下提示,提示你如果要录制https协议,需要安装jmeter生成的证书
关闭提示,可以看到如下的录制控制器窗口,可以设置请求名称的前缀。
也可以点击【stop】停止录制
9.浏览器上执行你要录制的操作
同学们在浏览器中先打开图书管理系统(http://10.9.31.5:9000/) 注意此ip地址为部署服务器的ip地址), 然后完成登录(admin/123456),这时可以看到脚本已经录制到线程组下了。
10.录制结束后停止录制
录制结束后,在HTTP测试脚本录制器的右侧面板上点击stop按钮,停止录制;
11.取消浏览器的代理设置
12.为脚本增加监听器,以便收集测试结果
脚本已经录制好了,为测试计划添加一个查看结果树和聚合报告
13 保存脚本后,运行脚本,
运行一下脚本看看吧,奥,不错啊。结果正常。
可以看看第二个请求的响应结果,是否有“登录成功”奥
14.添加定时器,模拟用户停顿
下面我们修改请求/user/login,为其增加一个固定定时器,时间设置为0.5s,以模拟用户输入账号的停顿。
定时器会在请求发送前停顿指定的时间,这样能很好的模拟用户操作的停顿。
当定时器放在一个控制器下是,会对控制器下的所有请求产生作用;
当定时器放在一个请求下时,仅对该请求生效,该请求发送前会停顿指定的时间,
登录请求前,停顿0.5s,模拟用户输入数据的时间
15.将第一个请求都设置为 获取嵌入资源
16.执行脚本
可以看到结构树上,请求下嵌入资源也被请求了
17.取消对嵌入资源的请求选项
取消 retrive all embeded resource 一般这个不勾选,通过刚才的设置让大家感受下它的作用
18.增加响应断言
为了检查用户是否登录成功,我们可以检查登录请求的响应结果中是否“登录成功“字样
如下图所示。为登录请求添加响应断言
响应断言的使用说明如下:
输入信息如下:
设置后,可以小试牛刀,执行下,看断言是否通过
断言如果失败,则效果如下:
19.设置模拟用户数和启动时间
修改线程组的线程数为2人,启动时间ramp-up为2s,进行性能测试
ok,至此,我们的测试计划就好了。是不是不大难,而且也挺有意思的,对吗?
大家应该能看懂聚合报告的各个列的含义,否则性能测试工作就白做了,没有意义了!
20.增加服务器性能监控
感兴趣的同学,请添加服务器性能监控,监控多用户登录时,服务器cpu、内存、网络io的占用情况奥(需要先启动startAgent.bat)
欢迎关注我的网易云课程
https://study.163.com/courses-search?keyword=%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95123\#/?ot=5
还没有评论,来说两句吧...