接口测试 httprunner3x 疑问 data 传参和正则定位

L · 2020年12月04日 · 最后由 yanfali 回复于 2020年12月09日 · 1547 次阅读

第一个问题,data 传参数
postman 是正常的,但是在代码上就不行,我是这样写的:.with_data("参数")

第二个问题,正则校验,用 httprunner3x 的 python 是怎样写呢,yml 的方式用不了?

共收到 7 条回复 时间 点赞

最近也在用 3.1.4,
第一个问题,data 传参数,为什么不用 har 转成 yml;
第二个问题:断言的正则是支持的 --- 只是 3 很多兼容性问题

- eq: [”(.*)“, "支付成功"]

L #6 · 2020年12月04日 Author
yanfali 回复

第一个问题,可以截图你的代码看看?
第二个问题,我用 yml 写的没问题,但是转过来是用 jsonpath 获取 title 的,代码是这样的

运行报错
第二个问题主要是获取问题,不是断言问题

第一个问题:用抓包的导出来 har1.2 会自己排版
request:
data:
bizData[cu_id]: ''
bizData[id]: "${split_url($url)}"
第二个问题是兼容性问题,parser.py
dolloar_regex_compile = re.compile(r"\$\$")

variable notation, e.g. ${var} or $var

variable_regex_compile = re.compile(r"\${(\w+)}|\$(\w+)")

function notation, e.g. ${func1($var_1, $var_3)}

function_regex_compile = re.compile(r"\${(\w+)(([\$\w.-/\s=\%\'\":,]*))}"

第二个问题的第二种实现方式:
def ret_deal(responseBody,checkstr):
# 返回的 body 为 byte 类型,调用 decode 将中文转化
response=responseBody.decode()
# 处理 response 对象判断字符 checkstr 是否在 response 响应里面,存在返回 1 不存在返回 0
if response.contains(checkstr):
return 1
else:
return 0

调用:
extract:
- body: body # 提取出 byte 类型的 body
validate:
- eq:
- status_code
- 200
- eq:
- ${ret_deal($body,'支付成功')} # 调用 ret_deal 方法处理
- 1 #1-包含 0-不包含

L #4 · 2020年12月08日 Author
yanfali 回复

方便加个联系方式?2.0 能够实现的东西,3.0 死活有问题,难得有一个搞 3.0 的

我也是刚用没多久喔,不过自动化基本能满足,不满足的自己改造,联系方式钉钉 李延发

L #6 · 2020年12月09日 Author
yanfali 回复

名字是搜不到呢,要电话吧。或者 qq 啥的也行,交流交流

liyanfa894306281 wx

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册