用户定义的变量+HTTP Cookie 管理器组合实现接口关联+问题处理

用户定义的变量+HTTP Cookie 管理器组合实现接口关联+问题处理

1、实例对象:手机蜜罐产品(http://192.168.65.61

2、实例接口:

      用户登录:    post       /login/

      用户登出:     get        /logout/

      获取所有用户:     get     /user/

3、用户定义的变量组件设置:   

 

4、添加HTTP Cookie 管理器设置

     ① 添加HTTP Cookie 管理器后,Jmeter会自动记录并保存服务端返回的cookie信息,并且在后面所有请求中自动添加cookie。每个线程的cookie都是独立的。

(注意跨域的cookie默认是不会自动管理的,可以修改Jmeter属性”CookieManager.check.cookies=false”) 

     ② 手动添加cookie信息:遇到没法自动获取的cookie就只能手动添加了,但注意手动添加的cookie会被所有线程共用的 
     ③ 一个测试计划内最好只有一个HTTP Cookie 管理器,因为Jmeter是无法指定使用某一个Cookie 管理器的;另外,如果Cookie名称有重复的话,前面的会被后面的替代。

5、添加http 信息头管理器

     通过浏览器的开发模式或者抓包工具fiddler获取创建的请求的header

6、手动创建请求

     按照已有接口文档填写请求内容(包括端口,请求方式,路径,参数)

  • 端口和参数可能为空
  • 有的post请求参数不可直接添加,需要以json格式脚本输入,因为不同系统后台数据处理方式可能不同

 7、添加查看结果树

       运行并查看请求状态

8、问题处理

  • 问题描述:  

           按照上述方法运行脚本,但查看结果树中显示的结果总是第一个通过,然后每间隔一个请求便失败一个,即若有4个请求,则1,3成功,2,4失败,

     并且失败的请求返回的错误提示均为下图所示

    

  • 解决方式:

          通过抓包工具fiddler抓取目标web请求数据,并保存到本地,再导入jemter中运行,发现抓包数据可正常运行通过。经反复对比和假设求证,

    得出以下问题有3个因素导致,即

     ① 请求路径不同(接口文档与实际接口不一致导致)

     ② 目标web不需要端口,但随意填写了一个端口

     ③ 一个测试计划下有多个线程,其他线程添加了全局http请求默认值组件,组件内容影响了测试线程

  • 解决结果:

          将上述3个因素均修改后,脚本运行成功。

  • 遗留问题:

          通过http代理服务器录制手机蜜罐web,可打开登录页面,也可录制到登录接口,但无法登陆,账号密码正常的情况下仍报“用户名或密码错误,请重试!”

    关闭代理服务器后可正常访问。

原文地址:https://www.cnblogs.com/xinxinyo/p/10395065.html