jmeter性能测试—登录百度进行搜索(图解)(二)

6. 继续,我们点击了登录按钮,百度为了防止csrf攻击,会给我们一个token(这个token在我们提交密码时一起提交过去),我们要在jmeter中再新建一个http请求,来获取这个token,get方法。相应参数如图:

我们仍旧需要一个正则表达式来获取这个token,注意这个token并没有放在返回消息的http头中,而是在响应消息中的js代码中,故firefox中我们无法看到,这里我用的是burp suite这个工具(具体使用方法参见:http://www.yeetrack.com/?p=173),在看到那段javascript代码后,我们用正则表达式进行提取:

7. 获取完这个token,我们就可以提交用户名和密码了。再次新建一个http请求,构造一个post请求,应该是这样:

注意由于是https连接,故端口为443,参数一共16个,自己去firefox中依次查看并添加到表格中,这里对于ppui_logintime这个参数有些不明白,应该是和本地时间有关,不太确定,随便填写了一个,校验通过了,如果你有更深的理解,欢迎讨论。

post请求之后,服务器校验用户名密码是否匹配,如果通过,服务器会发送cookie到浏览器,ok,再次用正则表达式提取,这次需要提取两个cookie,SAVEUSERID和BDUSS(不要忘记将这两个添加到cookie管理器中)

8. OK ,至此登录动作结束,我们可以试验一下,运行之前我们先添加一个“查看结果树”来统计运行结果。

点击中上方的运行按钮。你的结果应该类似这样:

我们可以看到每个包的发送和相应情况,检查一下是否登录成功。看下面截图,返回消息为浏览器设置cookie,代码登录通过。

9. 好了,登录成功,我们来提交个搜索的请求。新建一个http请求,如下图

当然如果我们要搜索的关键词很多,也可以从外面的文件中读取,方法是:在线程组中添加一个csv data set config,这个组件专门用来读取外部的文本文件。

keyword.txt中的关键字要用制定的字符隔开,这样在运行时文本中的关键字会被加载到keyword变量中,我们就可以在脚本中通过${keyword}来引用。

10. 最后在添加上结果统计的组件,来分析web程序的性能。

最后分享自己的脚本,http://wangpan.baidu.com/share/link?shareid=149068&uk=537055152。我是在登录动作中加了个一次控制器,让每个线程的登录动作只执行一次,搜索可以执行多次,如果你下载使用,将其中发送用户名、密码的post包中的username和password参数修改成自己的账号即可,然后在d盘下新建keyword.txt,里面放着用逗号隔开的关键词即可。本文由易踪网原创,如果你喜欢本文,请关注易踪网。

(完)

转载至:(作者:王学猛 来源:http://www.yeetrack.com/?p=51)

原文地址:https://www.cnblogs.com/Grace7582/p/4804122.html