一个简单的性能测试实践
1. 打开Jmeter GUI (bin->jmeter.bat)
2. 添加一个线程组 Thread Group
3. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request (打开login页面)
4. 添加查看结果树 Thread Group -> Add -> Listener -> View Results Tree, 然后运行 (验证请求是否成功)
5. 想要验证http response的内容是否正确,在请求上面添加响应验证 HTTP Request -> Add -> Assertions -> Response Assertion (验证login页面的title)
6. 如果Http请求带Body Data (login页面输入user name进行第一步验证)
a. 先用chrome或者fiddler得到请求的Request Payload, Payload内容是需要添加到http请求的Body Data
b. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request
7. 如果http请求需要用到上一个http请求的返回值---需要将值先从上一个请求获取到,然后作为参数传给下一个http请求 (login页面输入password进行第二步验证)
a. 先用chrome或者fiddler确认这个http payload需要的参数,可以看到MechanismId和SessionId都是从上一个请求中获取的
第一个请求的response数据
第二个请求的request数据
b. 在上一个http请求上添加正则表达式提取器来提取参数 HTTP Request -> Add -> Post Processors -> Regular Expression Extractor
(可以添加一个Debug Sampler去查看正则表达式的返回结果)
MechanismId和上面一样提取
c. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request
${变量名}使用变量
8. 执行上面所有的脚本,检查是否登录成功
9. 增加线程数量测试并发(3个相同的用户同时登录)
10. 增加线程数量测试并发(3个不同的用户同时登录)
a. 新建用不同用户名密码数据的txt文件
b. 在线程组上添加一个CSV Data Set Config进行参数化配置: Thread Group -> Add -> Config Element -> CSV Data Set Config
c. 用参数替换http请求中的写固定的user name
密码也是一样的
d. 查看结果:3个线程会使用3个不同的用户
11. 如果想分析每个请求的性能情况(服务器的响应时间...)
a. 聚合报告:Thread Group -> Add -> Listener -> Aggregate Report