使用jmeter完成完整的web文件下载(一)- cookie管理器

文章目录


jmter是常用的并发测试工具,但少有介绍一个完整的测试场景,列举截图来说明白如何使用。
本文列举了工作中需要测试的一个场景:web登陆,列出文件列表,下载某个文件。虽然流程简单,但是涉及到多个jmeter使用方式,故总结下来几个注意点,供参考。

第一部分是我对cookie管理器的使用和理解。

jmeter有cookie管理器,实测也很好用,但对于jmeter cookie管理有几点经验总结:

  1. cookie本来是在http request的header中,在jmeter中的results tree却显示为request body中,容易让人误解。但其实cookie manager确实将cookie放在request的header中了,并完成了正确的request组装。
    使用jmeter完成完整的web文件下载(一)- cookie管理器

  2. 启动jmeter配置选项中的cookie save功能,可以在test plan中调用cookie中的任何变量。使head配置更自由。

  • 修改jmeter.properties文件,重启jmeter。这样jmeter会解析获取到的cookie:
    使用jmeter完成完整的web文件下载(一)- cookie管理器

【场景】例如,希望抽取cookie中的XSRF-TOKEN变量,在下次请求中其value作为X-XSRF-TOKEN的header加入request中

  • 增加cookie manager。
    这样jmeter会将thread group中的cookie串起来,自动在后面的request中添加cookie到header中
    可以设置每次请求都清理cookie
    使用jmeter完成完整的web文件下载(一)- cookie管理器

  • 验证解析到的cookie值。
    增加debug sampler(类似于代码中的debug信息打印),可以将jmeter执行中的变量打印出来
    使用jmeter完成完整的web文件下载(一)- cookie管理器
    运行一下,看是否解析cookie:
    使用jmeter完成完整的web文件下载(一)- cookie管理器
    可以看到,开启cookie save功能后,jmeter将cookie自动解析为cookie_XXX,后面请求就可以调用这个变量啦

  • 将解析到的cookie数据,自定义增加到后续web request的header中。
    增加header manager。新增后续rquest的header项。(这里理论上header manager会在每个request中都加上这些header,虽然某些request是不需要的)
    使用jmeter完成完整的web文件下载(一)- cookie管理器
    增加的header项名称为X-XSRF-TOKEN,其value就引用到了前面的${COOKIE_XSRF-TOKEN}

  • 验证header manager是否正确增加头部信息
    执行一下,看看debug信息:
    使用jmeter完成完整的web文件下载(一)- cookie管理器
    可以看到,header manager已经按照我们的需求,将新的项按照抽取到的变量值增加到http request中。

以上,完成了header的定制、变量抽取等。