大家好,我是温大大
最近在看大家简历的时候,发现大部分同学都写过用过 jmeter,但再面试过程中还是发现其实对 jmeter 不太熟练,例:如何断言,如何自定义参数,如何对请求进行关联,这些其实都是必问,如果你做过一定会回答,并且会一门性能压测工具面试时真的比较加分。
所以今天给带大家入门 jmeter http 请求模拟,全程保姆式教学,希望大家喜欢。
目录:
公众后后台回复:jmeter
mac 为例:
1、解压:
unzip apache-jmeter-5.1.1.zip
2、jdk 版本 1.8 或 1.8+:
java -version
显示:java version "1.8.0_271"
3、赋权 + 启动
chmod +x /apache-jmeter-5.1.1/bin/jmeter
sh /apache-jmeter-5.1.1/bin/jmeter
windos 为例:
1、配置环境变量:
2、启动:
必须新建一个 Thread Group, jmeter 的所有任务都必须由线程处理,所有任务都必须在线程组下面创建
比如我要发送一个 Get 方法的 http 请求: toy1.weather.com.cn/search?cityname=上海
如果返回结果存在乱码
方法 1:
方法 2:
修改 bin 下的配置文件并重启:jmeter.properties
优点:一次修改,长久使用
选中上一步新建的 HTTP request. 右键,新建一个 Http Header manager. 添加一个 header
View Results Tree 是用来看运行的结果的
到这里。 我们已经成功运行起来了(有可能返回的中文显示乱码,但不影响我们后续的教程)。
选择 HTTP Request, 右键 Add-> Assertions -> Response Assertion. 添加 Patterns To Test
然后添加一个 Assetion Results 用来查看 Assertion 执行的结果.
选中 Thread Group 右键 Add -> Listener -> Assertion Results.
运行后, 如果 HTTP Response 中没有包含期待的字符串。 那么 test 就会 Fail.
我们还可以在 Jmeter 中定义变量。 比如我定义一个变量叫 city. 使用它的时候用 ${city}
添加一个 User Defined Variables. 选中 Thread Group: 右键 Add -> Config Element -> User Defined Variables.
我们添加一个变量: city
然后在 Http Request 中使用这个变量
所谓关联, 就是第二个 Requst, 使用第一个 Request 中的数据
我们需要在第一个 Http Requst 中新建一个正则表达式,把 Response 的值提取到变量中,提供给别的 Http Request 使用
选择第一个 Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor
现在新建第二个 Http Request, 发送到: http://www.weather.com.cn/weather2d/${citycode}.html
${citycode} 中的数据, 是从 Regular Expression Extractor 中取来的
到这, 脚本就全部写好了, 运行下, 请求参数里面 http://www.weather.com.cn/weather2d/101020100.shhtml ${citycode}被替换数字
如图,此处代表 300 个用户并发处理,并只执行一次脚本
关注我,加我好友拉你进面试群,一起讨论面试干货 / 套路, 大家一起升职加薪,关注公众号:测试猿温大大