运用JMeter登录系统,并进行性能测试

转载:https://blog.csdn.net/yangqingtao/article/details/51622887

首先必须抓取网站登陆时所发送的Post参数,以登陆知乎zhihu为例

用Chrome打开 https://www.zhihu.com/,点击登录进入登录页面,保持该页面不动(下图左边)。随后进入Chrome的开发者模式,选择Network视图(下图右边) 。最好勾上Preserve Log的选项 ,以免在提交登录请求的时候由于页面刷新太快漏掉了请求。


输入用户名和密码以后,右边的调试窗口会出现大量的请求列表。找到名字为email的请求,看到它是一个POST请求

  1. Request URL:
    http://www.zhihu.com/login/email
  2. Request Method:
    POST
  3. Status Code:
    200 OK
  4. Remote Address:
    117.169.77.100:80
用户名和密码在最下面的Form Data中

  1. _xsrf:
    49ede7b8e3f8c08662d75bd9b259fc6e
  2. password:
    ***********
  3. captcha:
    {"img_size":[200,44],"input_points":[[115.297,36],[177.297,33]]}
  4. captcha_type:
    cn
  5. remember_me:
    true
  6. email:
    ************

这就是我们需要向服务器POST的信息。


打开JMeter,添加以下的元素

分别是HTTP请求默认值、HTTP Cookie 管理器、登录请求页面URL、登录后的首页

注意由于知乎使用的是HTTPS协议,所以在HTTP请求默认值页面,需要额外的做一些设置:端口号是443,协议是https

HTTP请求中的登录页面需要把之前抓到的POST请求参数配置进去:密码、字符集设置、是否记住用户、邮箱。以及登录请求的URL(由于服务器名称在HTTP请求默认值中已经设置好了,所以这里只需要填写路径部分 /login/email)



登录成功后的页面https://www.zhihu.com/#signin,应该会有我的草稿、我的收藏、我关注的问题 这些标签,如果在返回的响应种看到了这些文本,则测试是成功的


所以在登录后的首页里面添加一个断言,检查是否包含文本“我的草稿”来判断登录是否成功


点击JMeter运行按钮开始执行,可以看到返回结果里面已经有了“我的草稿”的文本,说明登录成功


截止目前,我们已经能成功的登录知乎系统,并返回结果。但大部分性能测试需求只需要测试登录后用户所能操作的页面,并不需要测试用户登录页面。而我们目前的方案如果要测试这些页面,必须连同登录页面一起测试。JMeter提供了了一个很好的逻辑控制器来处理这样的场景:仅一次控制器



将登录操作放到该逻辑控制下,那么登录操作就只会执行一次



然后在你的线程组里面设置所需要的循环次数,执行结果(这里设置了10次),可以看到返回了10的成功结果



TIPS:在测试过程中发现,如果在短时间内重复登录多次的话,知乎Zhihu会出现人工输入的验证码,JMeter无法处理这样的情况,只能等一段时间验证码机制失效后再重新试。

文中所列的JMeter脚本文件可以在这里下载(用户名和密码需要根据自己的情况修改一下)

http://download.csdn.net/detail/yangqingtao/9546161


猜你喜欢

转载自blog.csdn.net/FlyPigYe/article/details/89855568
今日推荐