pytest + yaml 框架 -55. raw 不转义模板语法

发布时间 2023-09-22 21:18:56作者: 上海-悠悠

前言

在yaml 文件中,设置的引用变量语法是${var}, 最近有小伙伴提到一个需求:请求参数的内容需要有特殊符号${var},
希望不被转义,不要引用变量,直接用原始数据即可。

raw 忽略模板语法

Jinja2提供了 "raw" 语句来忽略所有模板语法。

语法示例

{ % raw % }hello ${var} world! { % endraw % }

在yaml文件中用例示例

test_a1:
  variables:
    name: yoyo
  request:
    url: http://example.com
    method: post
    json:
      username: '${name}'
      diy: '{% raw %}hello ${var} world {% endraw %}'

运行日志

2023-09-22 21:09:04 [INFO]: method   -->: post
2023-09-22 21:09:04 [INFO]: url      -->: http://example.com
2023-09-22 21:09:04 [INFO]: headers  -->: {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'A
ccept': '*/*', 'Connection': 'keep-alive'}
2023-09-22 21:09:04 [INFO]: json     -->: {"username": "yoyo", "diy": "hello ${var} world "}
2023-09-22 21:09:04 [INFO]: ------  response info  200 OK ------

运行日志可以看出,username 会引用变量得到值"yoyo"
diy参数设置了raw获取原始数据,不做变量加载,于是得到原始值"hello ${var} world "