使用Jmeter测试web应用时,通常有两种测试计划:面向请求数的测试、面向场景的测试
模拟用户操作属于面向场景的测试。
准备工作
1.1 建立线程组和HTTP请求
在测试计划中新建线程组,线程组中添加一个HTTP请求,并配置。
1.2 录制控制器
录制控制器用来自动录制脚本:线程组 -> 添加 -> 逻辑控制器 -> 录制控制器
1.3 代理服务器
需要添加一个代理服务器来配合录制:工作台 -> 添加 -> 非测试元件 -> HTTP代理服务器
1.4 配置HTTP代理服务器
1.4.1 保证代理服务器的端口不冲突
1.4.2 将Test Plan Content中的目标控制器改为“测试计划->线程组->录制控制器”(即前面刚刚添加的录制控制器)。分组改为“每个分组放入一个新的控制器”。
1.4.3 Request Filtering中可以对模拟的请求进行过滤或包含的配置(通过正则表达式),按需配置。
开始录制脚本
首先,在Jmeter里面启动配置好的代理服务器。然后, 把上面的代理服务器配到浏览器设置里面。 打开要目标页面,进行操作。
操作完成后,手动停止代理服务器,录制完成。
录制完成后,可以删掉不相关的请求,也可以实现在代理服务器配置里面配置过滤。只要再次运行,就可以跑之前录制的脚本。
这样看来,录制脚本的思想就是通过代理服务器监听用户的操作产生的一系列网络请求,并将这些请求全部记下,这样后面的自动模拟测试其实就是重复发送这一系列请求。
模拟登录:Cookie管理器
前面写的操作只是单一的登陆操作,即使录制了登陆后的后续操作,也得不到想要的效果。因为没有保存cookie,再跑脚本的时候服务器会认为尚未登陆而拒绝请求,这样前面录制的操作就没用了。
所以,需要添加一个Cookie管理器。
3.1 添加Cookie管理器
点击线程组 -> 添加 -> 配置元件 -> HTTP Cookie管理器。
添加管理器后,保持默认配置即可,Cookie管理器会在录制脚本的时候自动保存cookie,并且每个线程都又自己的cookie空间。
3.2 【重要】 到jmeter安装目录的bin/目录下,修改jmeter.properties文件的CookieManager.save.cookies值为true。
CookieManager.save.cookies=true