zoukankan      html  css  js  c++  java
  • jmeter性能测试—登录百度进行搜索(图解)(一)

    在做web程序性能测试时,loadrunner和jmeter是两款常用的工具,两者比较起来,jmeter非常轻巧,且开源免费,上手快。这里简单介绍下jmeter的使用,以登录百度进行搜索为例。

    jmeter运行需要jdk环境,这个不多做介绍。软件界面:

    1. 右击“测试计划”,添加一个线程组

      线程组界面可以配置线程的数量,“Ramp-Up Period(in seconds):"这个参数是

      配置这些线程组在多少时间内完全启动(可以把时间设置长点,这样防止一开始就对服务器造成很大压力),还可以配置循环次数,后面还有调度器配置。

    2. 分析一下登录百度的过程,首先访问http://www.baidu.com,百度分配给你一个baiduid的cookie;点击“登录”按钮,浏览器会带着相关参数和cookie去请求nsclick.baidu.com;之后百度为了防止csrf攻击(csrf详细解析见:http://www.yeetrack.com/?p=220),会给客户端发送一个token;其后输入username、password,浏览器将用户名、密码、token及相关参数post给passport.baidu.com进行校验,校验成功后,百度会分配给浏览器cookie,这里用的到的有SAVEUSERID和BDUSS两个,上面过程可以通过firefox的插件httpfox轻松得到(关于firefox的插件httpfox,详细见http://www.yeetrack.com/post/2012-11-22/firefox%2520httpfox%25E6%258F%2592%25E4%25BB%25B6)

    3. ok,开始了,在线程组内新建一个http请求, 填写域名、端口等信息

                                                                                                                                       访问百度后,服务器会立刻分配一个BAIDUID的cookie,我们需要提取这个cookie,完成后续的认证,右击这个http请求,添加一个正则表达式提取器                                                                                                                                                                                                                                                                                                                                                                 它的页面应该类似这样填写:                                                                                                                                                                                                                                                                                                                                                                                                                                cookie在返回包中的消息头中,选中消息头,cookie名字为BAIDUID,正则表达式用来匹配消息头中的cookie,http消息头中的cookie是这个样子:BAIDUID=EB8A76382372306096A079F34C1C84EA:FG=1;H_PS_PSSID=1690_1438_1541_1542_1662_1582,表达式BAIDUID=(.*);可以提取出其中的cookie value(如果不了解正则表达式,可以参见:http://www.yeetrack.com/post/2012-11-02/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%88%E4%B8%80%EF%BC%89),下面的模板的意思是如果我们写的正则表达式匹配到了多条内容,我们去其中的第几个,如$1$就是取第一个,下面的缺省值指如果没有匹配到内容,就指定一个默认值,这里可以不填写。

    4. ok,下一步,点击百度页面右上角的“登录”,用httpfox或者浏览器自带的网络查看去找相应的参数。对应到jmeter中,就是再新建一个http请求,get方法。应该如下填写:                                                                                                                                                                                                                                                   参数共8个,要分别填写在表格里,其中有个参数t,指的是当前的Unix时间戳,jmeter提供一些函数,我们可以直接调用${__time()}这个就是调用jmeter的系统函数获取本地时间。

    5. 呃,忘了一步,第三步中我们用正则表达式,提取出了返回消息http头中的cookie,我们需要将这个cookie,放到jmeter的消息管理器中,这样在jmter在发送http请求时会自动带上相应cookie,右击“线程组”添加cookie管理器组件:

      添加完毕,进行配置,应该是这样样子的:

      名称是cookie的key,要和http消息头中的名字对应;值是我们从正则表达式中提取的cookie value,${BAIDUID}是指取出BAIDUID这个变量的值(要和正则表达式页面的名字对应),下面两个是后面用到的。cookie的域和路径依次填好。

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

  • 相关阅读:
    算法提高 11-2删除重复元素
    Codeforces 402 D Upgrading Array
    Codeforces 351B Jeff and Furik
    湖南多校对抗赛(2015.03.28) I Inversion Sequence
    湖南多校对抗赛(2015.03.28) H SG Value
    湖南多校对抗赛(2015.03.28) G Good subsequence
    湖南多校对抗赛(2015.03.28) E Longest Increasing Subsequence Again
    湖南多校对抗赛(2015.03.28) B Design road
    湖南多校对抗赛(2015.03.28) A Rectangle
    Codeforces 515D Drazil and Tiles
  • 原文地址:https://www.cnblogs.com/Grace7582/p/4804100.html
Copyright © 2011-2022 走看看