>[info]功能逻辑:wap官网(a.4399sy.com.hk),每个用户登录一次,发帖2次,发帖成功后注销退出。
实战开始前,先看一下我完整的jmeter用例结构
![](https://box.kancloud.cn/8b3b3aac94a02ce473a289d97f550423_429x456.jpg)
[TOC]
## 实战步骤:
### 步骤一:添加测试计划
![](https://box.kancloud.cn/f38c669f621baf65cf52136a5447b206_952x672.jpg)
### 步骤二:添加线程组
![](https://box.kancloud.cn/53e360c2c042e45143dd123c9400b2db_960x528.jpg)
### 步骤三:添加HTTP Cookie 管理器
Cookie管理器会自动管理Cookie信息,在web测试中使用广泛。在本实例中,如果没有添加Cookie管理器,则登录后,自动重定向后登录状态断言失败,发帖失败。
![](https://box.kancloud.cn/791e1cd9061c4119a159b6e6931a184b_956x357.jpg)
### 步骤四:添加HTTP信息头管理器
本元件进行请求header头管理,本实例中,使用wap官网,需添加
User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Mobile Safari/537.36
如果没有添加UA,则会造成登录成功后,页面重定向到PC官网首页,造成用户登录状态不正确。
![](https://box.kancloud.cn/8165ed20f7f2b0cf5407bea2cb181b5b_953x220.jpg)
### 步骤五:添加HTTP请求默认值
本元件配置HTTP请求默认值,在其作用范围内,其余的HTTP Sampler 如果没有填写覆盖默认值,则可以直接使用默认值。
本实例的所有请求,均在同一个域名内:a.4399sy.com.hk
![](https://box.kancloud.cn/5a000c31461e883ae2533c2250a54ba0_955x658.jpg)
### 步骤六:添加参数化CSV数据配置
本元件从csv文件中读取参数值到jmeter变量中。本实例将登录用户名和密码存放在user.csv中,jmeter运行时将其迭代读取到对应变量name,pwd 中,后续引用如${name},${pwd}
*Recycle on EOF?*:False 不重复迭代
*Stop thread on EOF?*:True csv迭代完成后,退出线程
![](https://box.kancloud.cn/2a6ee0e81cc3e4432337297e4a165f6c_952x353.jpg)
其中,csv内容如下:
```cmd
001@126.com,123456
002@126.com,123456
```
### 步骤七:添加逻辑控制器:仅一次控制器
本元件,一个线程只执行一次,本实例用于控制一个用户只登录一次
![](https://box.kancloud.cn/c6bc71052e23e7d67f79c81a7b0cfa2e_953x134.jpg)
### 步骤八:添加HTTP Sampler:发送登录请求
本实例,发送请求参数做了参数化,引用步骤六中的变量${name},${pwd}
![](https://box.kancloud.cn/b492ee3113b660c63359f14556573421_946x683.jpg)
### 步骤九:添加断言:响应断言
登录后,页面重定向到官网首页,html内容中显示登录用户名,因此响应断言如下:
![](https://box.kancloud.cn/0402bd944beef2d5f0cf7d4161194bda_952x394.jpg)
### 步骤十:添加逻辑控制器:循环控制器
本元件在此例中,用于控制用户登录后,发帖2次
![](https://box.kancloud.cn/82960071277caa6104bd78f809c1089e_952x156.jpg)
### 步骤十一:添加固定定时器
本元件,主要用于类似思考时间
![](https://box.kancloud.cn/305d5116ee7b115ba3d88317ae748bac_950x143.jpg)
### 步骤十二:添加HTTP Sampler:发帖留言请求
本Sampler中,引用步骤十三中的前置处理器中定义的变量${content} 和内置函数助手 ${__time(,)}
![](https://box.kancloud.cn/3babbe8cf8080ef890aab628f269c2be_953x675.jpg)
### 步骤十三:添加前置处理器:用户参数
前置处理器,顾名思义,在Sampler 发送之前执行,本实例中,发帖时,用户_1 和 用户_2使用不同的发帖内容,并且发帖内容赋予给变量${content}
![](https://box.kancloud.cn/40331cb625a6a394a1db2d472005128a_948x217.jpg)
### 步骤十四:添加断言:响应断言
本实例,发帖成功后,返回json中,code=1,发帖失败,则返回code=-1。所以发帖成功断言如下:
![](https://box.kancloud.cn/480a6f6fdffbe07bb4bda74eea04e6de_949x387.jpg)
### 步骤十五:添加后置处理器:正则表达式提取器
根据发帖响应,用正则表达式将code值提取出来,赋予变量${code_result},用于后续的if控制器。
![](https://box.kancloud.cn/b905f357eca06b744d9b7789f1987028_955x362.jpg)
### 步骤十六:添加逻辑控制器:IF控制器
本控制器,用于控制本实例中,如果发帖成功,则进行注销操作。
![](https://box.kancloud.cn/01ca8785ea4386691e67e7f4ec0fe056_951x168.jpg)
### 步骤十七:添加HTTP Sampler:注销请求
![](https://box.kancloud.cn/e8f17a66e63a59a8eaee27fad44812f6_949x655.jpg)
### 步骤十八:添加断言:响应断言
注销成功后,页面中不再记录用户状态,断言如下:
![](https://box.kancloud.cn/21fdaba30ab1fe325d4ee0d7f286bf01_952x389.jpg)
### 步骤十九:添加监听器:查看结果树
本元件,用于显示请求与响应信息
### 步骤二十:添加Debug Sampler
本元件,用于jmeter调试,显示jmeter变量值
## 各元件的运行顺序
1. Configuration elements
2. Pre-Processors
3. Timers
4. Sampler
5. Post-Processors (unless SampleResult is null)
6. Assertions (unless SampleResult is null)
7. Listeners (unless SampleResult is null)
<hr style="margin-top:100px">
:-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg)
***微信扫一扫,关注“python测试开发圈”,获取更多测试开发分享!***
- 前言
- Fiddler01-抓包原理介绍与配置
- Fiddler02-菜单功能介绍
- Fiddler03-轻松玩转Fiddler
- Fiddler04-进阶使用FiddlerScript
- Fiddler05-使用FiddlerScript对微信文章互动量进行监控
- Postman01-介绍与安装
- Postman02-HTTP请求与响应
- Postman03-Collection管理与运行
- Postman04 -变量详解
- Postman05-初级脚本使用
- Postman06-实例小结篇
- JMeter01-JMeter就是这么简单
- JMeter02-一个完整实战包你学会使用JMeter
- JMeter03-在JMeter中使用BeanShell编程
- JMeter04-图形化和非图形化运行JMeter
- JMeter05-生成美观的HTML测试报告
- JMeter06-JMeter+Jenkins实战
- JMeter07-解析session与cookie