最近在用 jmeter 测试 web 接口,用的 post 方式,body data 中含的 token_id 和 user_id,测试中很多接口都要用到这两个值,所以想把这两个值参数化,如图
试了下添加 Http 信息头管理器,这里用函数助手中_CSVRead 参数化了一下,如图
运行后,结果树中显示的结果为
是不是这个方法错了,怎样才能把 body data 中的 token_id 和 user_id 参数化,请教下。。
在这个接口下 添加 正则表达式提取器 引用名称: token_id 正则表达式:."token_id":"(.+?)". 模版:$1$ 匹配数字:1
后续其他接口的引用直接采用 ${token_id} 搞定
#1 楼 @hu_qingen 你好,谢谢回复,刚才试了下,我们的登录接口加密方式比较复杂 {publickey+[(密码 MD5 加密)+ 公司名称缩写] MD5 加密}MD5 加密 ,暂时没有找到测试登录接口的方法,正则表达式是提取登录接口返回的 token userid 值吗,如果提起到了这个值的话,其他接口在 body dady 里面输入了请求信息后,在 patameters 中不能输入 ${token_id}
#2 楼 @lancelot 你们登录时,发送的参数密码 值就是 MD5 加密后的结果吗?有两种方式: 1.若数据库 user 表中存储的数据就是 md5 加密后的结果,可以直接把从数据库拉取用户名和密码存成 csv 文件,再参数化测试登录;2.若数据库存取的是明文密码,那可以把用户名和密码拉取出来,写到 excel 里面,用 python 或 java 按照加密规则生成 md5 值,写入到 excel,再测试登录接口
正则表达式就是提取 tonken 和 userId 的值;等下我这边出一篇文章,应该大致能解决你的问题 https://testerhome.com/topics/5771
#3 楼 @hu_qingen 你好,看到了你的新帖,谢谢。 我们的登录接口加密是这样的:a.pubilckey-随机获取 b.密码 c.公司名称缩写 b 和 c MD5 加一次得到加密后的 x,1 和 x MD5 再加密一次,因为 pubilckey 是随机获取的,所以每次加密后的密码都不一样。。 如果先不管登录接口,从 app 或 web 页面登录后拿到 token_id 和 user_id,然后其他接口请求时也复用这两个 id,不用每次都在 body data 中输入,这样的话该如何操作
#3 楼 @hu_qingen 已解决,多谢,用 CSV Data Set Config 绕到圈子里面去了,刚才得到通知这个登录接口要做性能测试。。。。
测试下结贴