pytest + yaml 框架 -32.re 正则解析返回结果

前言

pytest-yaml-yoyo 插件可以支持3种表达式提取接口返回结果,jsonpath 和 jmespath 适合解析返回的json数据。
非json 数据的结果可以用re 正则表达式取值。
备注:从v1.2.4 以后新版本不再公开,新功能内部 VIP 学员可以使用,公开版本仅解决bug, 不提供新功能了。

re 正则取值

访问我的博客地址https://www.cnblogs.com/yoyoketang/

test_re.yml 用例文件内容

# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

test_yoyo_blog:
  name: re取值
  request:
    url: https://www.cnblogs.com/yoyoketang/
    method: GET
  validate:
    - eq: [status_code, 200]

结果返回

如果我想取出title 的内容 <title>上海-悠悠 - 博客园</title>

可以用正则取值 <title>(.+?)</title>

test_yoyo_blog:
  name: re取值
  request:
    url: https://www.cnblogs.com/yoyoketang/
    method: GET
  validate:
    - eq: [status_code, 200]
    - eq: ['<title>(.+?)</title>', 上海-悠悠 - 博客园]

运行结果

2023-06-07 19:42:17 [INFO]: validate 校验内容-> [{'eq': ['status_code', 200]}, {'eq': ['<title>(.+?)</title>', '上海-悠悠 - 博客园']}]
2023-06-07 19:42:17 [INFO]: validate 校验结果-> eq: [200, 200]
2023-06-07 19:42:17 [INFO]: validate 校验结果-> eq: [上海-悠悠 - 博客园, 上海-悠悠 - 博客园]

正则取值可以用固定的语法 .+?.*?

json 内容也可以正则取值

test_re2.yml

# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

test_re2:
  name: re取值
  request:
    url: /api/test/demo
    method: GET
  validate:
    - eq: [status_code, 200]
    - eq: ['"code": (.+?),', '0']
    - eq: ['"msg": "(.+?)"', '成功success!']

运行结果

2023-06-07 19:46:28 [INFO]: raw text <--: {"code": 0, "msg": "成功success!", "data": [{"age": 20, "create_time": "2019-09
-15", "id": 1, "mail": "283340479@qq.com", "name": "yoyo", "sex": "M"}, {"age": 21, "create_time": "2019-09-16", "id": 2,
 "mail": "123445@qq.com", "name": "yoyo111", "sex": "M"}]}
2023-06-07 19:46:28 [INFO]: validate 校验内容-> [{'eq': ['status_code', 200]}, {'eq': ['"code": (.+?),', '0']}, {'eq': ['
"msg": "(.+?)"', '成功success!']}]
2023-06-07 19:46:28 [INFO]: validate 校验结果-> eq: [200, 200]
2023-06-07 19:46:28 [INFO]: validate 校验结果-> eq: [0, 0]
2023-06-07 19:46:28 [INFO]: validate 校验结果-> eq: [成功success!, 成功success!]

json 数据的结果也可以用re 正则表达式取值。
网易云完整视频课程https://study.163.com/course/courseMain.htm?courseId=1213419817&share=2&shareId=480000002230338
报名咨询wx:283340479 (已报名的同学学习过程中有问题,都可以协助解决)

posted @ 2023-06-07 19:48  上海-悠悠  阅读(238)  评论(0编辑  收藏  举报