性能测试之JMeter-实践1

一个简单的性能测试实践

1. 打开Jmeter GUI (bin->jmeter.bat)

2. 添加一个线程组 Thread Group

性能测试之JMeter-实践1

3. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request (打开login页面)

 性能测试之JMeter-实践1

4. 添加查看结果树 Thread Group -> Add -> Listener -> View Results Tree, 然后运行 (验证请求是否成功)

性能测试之JMeter-实践1

 5. 想要验证http response的内容是否正确,在请求上面添加响应验证 HTTP Request -> Add -> Assertions -> Response Assertion (验证login页面的title)

性能测试之JMeter-实践1

6. 如果Http请求带Body Data (login页面输入user name进行第一步验证)

a. 先用chrome或者fiddler得到请求的Request Payload, Payload内容是需要添加到http请求的Body Data

性能测试之JMeter-实践1

b. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request

性能测试之JMeter-实践1

7. 如果http请求需要用到上一个http请求的返回值---需要将值先从上一个请求获取到,然后作为参数传给下一个http请求 (login页面输入password进行第二步验证)

a. 先用chrome或者fiddler确认这个http payload需要的参数,可以看到MechanismId和SessionId都是从上一个请求中获取的

第一个请求的response数据

性能测试之JMeter-实践1

第二个请求的request数据

性能测试之JMeter-实践1

b. 在上一个http请求上添加正则表达式提取器来提取参数 HTTP Request -> Add -> Post Processors -> Regular Expression Extractor

(可以添加一个Debug Sampler去查看正则表达式的返回结果)

性能测试之JMeter-实践1

MechanismId和上面一样提取

c. 在线程组上面添加一个http请求 Thread Group -> Add -> Sampler -> HTTP Request

性能测试之JMeter-实践1

${变量名}使用变量

8. 执行上面所有的脚本,检查是否登录成功

性能测试之JMeter-实践1

9. 增加线程数量测试并发(3个相同的用户同时登录)

性能测试之JMeter-实践1

性能测试之JMeter-实践1

10. 增加线程数量测试并发(3个不同的用户同时登录)

a. 新建用不同用户名密码数据的txt文件

性能测试之JMeter-实践1

b. 在线程组上添加一个CSV Data Set Config进行参数化配置: Thread Group -> Add -> Config Element -> CSV Data Set Config

性能测试之JMeter-实践1

c. 用参数替换http请求中的写固定的user name

性能测试之JMeter-实践1

密码也是一样的

d. 查看结果:3个线程会使用3个不同的用户

11. 如果想分析每个请求的性能情况(服务器的响应时间...)

a. 聚合报告:Thread Group -> Add -> Listener -> Aggregate Report

性能测试之JMeter-实践1