jmeter引用cookies进行登录实战

2016-04-20  江永道 


  • 最近公司需要做性能测试,我琢磨着也来试试吧,以jmeter登录接口为例,就下面的这个登录页面




  • 在测试之前,我们输入用户和密码先手动登录下,看看有那些网络信息,使用fiddler抓包



  • 登录发送的是这个请求,我们看下使用什么方式,以及用到那些参数


        看下图,可以看到是POST发送方式,以及包含N多cookies


  • 在下图可以看到有5个参数



  1.     Csrf_test_name:这个参数的请求值可以看到和cookies里面的csrf_cookie_name值一样,这样我们就可以从cookies中获取该参数的值
  2.     Username:用户名
  3.     Password:密码
  4.     Auto_login:请求值为1,我们先不管这个是干嘛的,到时候我们也填1
  5.     Login_submit:请求值为1,我们先不管这个是干嘛的,到时候我们也填1





  • 看下响应结果,是json类型数据,可以看到username被返回,也包含一些其它的字段信息,这里的某些信息就可以用作响应断言




好了,接下来使用jmeter来测试了,引用cookies,这也是这次分享的重点

    要确保jmeter.properties(这个文件在安装目录的bin目录下),文件里面的设置项CookieManager.save.cookies=true


  • 可以从测试计划中添加线程组,这里我定义跑100个




  • 添加HTTP Cookie管理器,默认就行不用设置
  • 添加HTTP请求,该请求是为了获取cookies




  • 添加登录接口,也是HTTP请求,注意下图标红的,就是引用cookies里面的值${COOKIE_cookie名称}
        

        添加请求参数

  1.         csrf_test_name ${COOKIE_cookie名称}
  2.         username 用户名
  3.         password 密码
  4.         auto_login 默认设置1
  5.         login_submit 默认设置1


  • 响应文本,我这里判断响应文中有我的用户名就行,具体定义可以自己设




  • 我这里只看登录接口的结果,所以我把查看结果树和聚合报告位置都放到了登录接口下面



  • 看响应时间,跑100个简直是无关痛痒,这里只是演示下,引用cookies登录的例子


好了就分享到这里吧,下次再和大家交流



 {测试窝原创文章,作者:江永道}

作者简介:江永道,09届毕业,网络工程专业,6年软件测试行业经验


5226°/52225 人阅读/4 条评论 发表评论

布谷测试  2017-05-18

请问步骤中引用{COOKIE_cookie名称}是如何与真实的cookie值关联?我在项目实践中按文章的操作去引用COOKIE值,输出结果不对呢。


江永道  2017-05-18

@布谷测试 每个系统的的参数名称都是不一样,这里要换成你要获取的参数名称,可以打开浏览器到cookie里面去看


选择  2018-05-04

我测得项目csrf令牌是在响应信息头里面的,我用正则提取器取到了随机数,但还是报500错误,怎么破?


珠珠  2018-05-23

怎么能绕过登录使页面保持登录状态并进行压测


登录 后发表评论