metersphere 设置动态参数

第一种:将返回值提取,并设置成环境变量

        第一步:提取返回数据

        1.请求成功之后,按照下面操作选择,一共有两种方式

提取返回数据的两种方式

第一种:自己选择jsonpath 然后自己编写提取方式:

        比如:$..name    (这种方式可以比较偷懒,不需要管层级关系,会把所有name的值都会获取到)

                  $data[0]name(根据层级一层一层找,找到自己想要的name的值。结构不变的情况下,查找会更快一些。)

第二种:直接选择推荐JSONPath提取,右侧会出一个弹窗会自动帮你填入,so easy!

        第二步:将提取的变量存放到全局变量中

vars.put(${__metersphere_env_id}+"key","value");   设置成全部变量,单接口测试推荐用这个
vars.put("key","value")  设置成局部变量,创建接口自动化场景的时候推荐使用。

补充:经过尝试,第二种方法在以下情况的接口自动化场景可以使用。

        1.新建的场景

        2.引用前一个场景后 ,获取引用场景设置的变量

2.在环境变量中先设置值,后期获取之后进行修改。

count=int(${count})
count= str(count+1)
vars.put(${__metersphere_env_id}+"count",count);


第二种:将上一个接口作为前置脚本,并设置成局部变量。保证接口获取到最新数据【针对需要动态获取接口返回数据的情况】

        第一步:添加组件【记得修改一下代码语言,不然运行之后会报错】

        第二步:选择你需要的接口

        第三步:将获取的返回值进行提取并设置成局部变量

这个是我找了资料之后,按照对方的格式写的,你也可以按照自己的返回值来试一下。【tips:metersphere 有时候会出现问题,你的代码什么写的都没有问题,但还是会报错。这个时候可以把代码复制到本地,然后修改一下再黏贴上去,就可以正常运行  】     

记得导入json

import json


json_data=json.loads(data)
items=json_data.get("content",[])
issueid=items['list'][0]['id']
issueNo=items['list'][0]['issueNo']
log.info("issueid:"+issueid)
vars.put("issueid",issueid)
log.info("issueNo:"+issueNo)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值