JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
2017-11-23 16:33
260 查看
概要:某些post请求,例如,登录的请求除了有我们再页面上需要输入的一些值(用户名、密码、是否记住密码等)之外,还有其他的参数,例如token等等,而且这些参数不固定,也就是说每一次post请求这些参数都不一样,那么针对这样的请求,我们就不能够直接给参数赋值,而需要动态获取参数的值,进而传递给post请求这个动态获取的值。
1. 下面是一个csdn网站登录的审查元素:其中username,password,_eventId是一般的参数,lt和execution是不固定的,每次请求值都不一样,所以需要动态获取这两个值。
![](http://img.blog.csdn.net/20170307171616465?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2. 动态获取的方式便是查看登录所在的那个页面(未点击登录前的页面),可以看到如下图:
![](http://img.blog.csdn.net/20170307171710995?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为我们需要在Jmeter中提取出这两个数据,所以需要使用jmeter先访问这个登录之前的页面,通过这个页面的后置处理器动态获取到相应的值之后,才可以进行下一步的登录请求操作。
下面是整个测试的全过程:
一、创建用户定义的变量(用于存储一些constant的值)、创建HTTP cookie 管理器、创建HTTP信息头管理器。
![](http://img.blog.csdn.net/20170307171828984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、下面是如何在jmeter中提取出这两个元素:
通过jmeter建立HTTP 请求,访问点击登录button之前的那个页面,通过后置处理器提取出来
![](http://img.blog.csdn.net/20170307171932700?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
利用后置处理器来取lt的值
![](http://img.blog.csdn.net/20170307172219811?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
三、下面是创建登录请求,获取了lt和execution的值之后,直接引用${Lt},${execution}即可,原理和一般的http请求一样。
![](http://img.blog.csdn.net/20170307172319702?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
四、因为登录之后的response不易观察,所以这里添加一个http请求,观察个人主页,看能否显示出个人信息,若显示,则说明登录成功。
![](http://img.blog.csdn.net/20170307172359428?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170307172440008?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170307172511321?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRHJlYW1UTA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意:这种请求的特殊性是需要访问页面通过后置处理器提取出动态的数据,其他处理和一般的post请求一致。
1. 下面是一个csdn网站登录的审查元素:其中username,password,_eventId是一般的参数,lt和execution是不固定的,每次请求值都不一样,所以需要动态获取这两个值。
2. 动态获取的方式便是查看登录所在的那个页面(未点击登录前的页面),可以看到如下图:
因为我们需要在Jmeter中提取出这两个数据,所以需要使用jmeter先访问这个登录之前的页面,通过这个页面的后置处理器动态获取到相应的值之后,才可以进行下一步的登录请求操作。
下面是整个测试的全过程:
一、创建用户定义的变量(用于存储一些constant的值)、创建HTTP cookie 管理器、创建HTTP信息头管理器。
二、下面是如何在jmeter中提取出这两个元素:
通过jmeter建立HTTP 请求,访问点击登录button之前的那个页面,通过后置处理器提取出来
利用后置处理器来取lt的值
三、下面是创建登录请求,获取了lt和execution的值之后,直接引用${Lt},${execution}即可,原理和一般的http请求一样。
四、因为登录之后的response不易观察,所以这里添加一个http请求,观察个人主页,看能否显示出个人信息,若显示,则说明登录成功。
注意:这种请求的特殊性是需要访问页面通过后置处理器提取出动态的数据,其他处理和一般的post请求一致。
相关文章推荐
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- Jmeter特殊情况一:登录请求中密码加密的情况
- Jmeter特殊情况一:登录请求中密码加密的情况
- Jmeter特殊情况一:登录请求中密码加密的情况
- Jmeter特殊情况一:登录请求中密码加密的情况
- 请求json开辟多线程,针对加载图片数据开辟多线程
- GCC中,在某些情况下,数据对齐很重要。
- 特殊情况下,把后台的代码写到前台上。实现前台数据的读取:
- 利用Filter实现对网页某些特殊属性的设置,例:设置网页的缓存情况
- 使用JMeter往Mysql中插入数据,数据时成功插入了,但是JDBC请求为什么显示的是报错状态
- jmeter中请求文件数据太大使jmeter运行缓慢甚至无响应的解决办法
- 关于c#中双主键表数据如何绑定到DataTable的方法(针对于dataset.xsd的特殊情况)
- jmeter随笔(8)--请求post的 数据为空
- JMeter察看结果树响应数据都是相同原因
- JMeter高并发场景下存在请求无数据
- ubuntu下挂载U盘(针对某些低版本或者系统不是自动挂载的情况)
- http请求数据包含特殊字符处理(java)