前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytest + yaml 框架 -69.新增depend 关键字,导入其它yaml用例

pytest + yaml 框架 -69.新增depend 关键字,导入其它yaml用例

作者头像
上海-悠悠
发布于 2024-05-10 11:17:32
发布于 2024-05-10 11:17:32
17400
代码可运行
举报
运行总次数:0
代码可运行

前言

有小伙伴提到,test_a.yml 中已经写了几个流程,test_b.yml 中希望能接着test_a.yml去写用例,于是就需要先导入test_a.yml用例。 为了满足此需求,v1.6.3版本 在config 中新增 depend 关键字。

需求场景

test_a.yml 中已经写了一些用例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  variables:
    x: hello
    y: world

test_x1:
  name: xx
  request:
    method: post
    url: http://httpbin.org/post
    json:
      title: aa
      message: bbb

test_x2:
  name: xx
  print: ${x} -- ${y}

test_b.yml 中可以在config 中添加depend 关键字, test_a.yml和test_a.yml 在同一个目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  depend: test_a.yml

test_b3:
  name: xx
  print: 输出结果--${y}

那么test_b.yml 就等价于把test_a.yml内容复制过来了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  variables:
    x: hello
    y: world

test_x1:
  name: xx
  request:
    method: post
    url: http://httpbin.org/post
    json:
      title: aa
      message: bbb

test_x2:
  name: xx
  print: ${x} -- ${y}

test_b3:
  name: xx
  print: 输出结果--${y}

所以会重复执行一次test_a.yml用例,再执行test_b.yml 中的用例。

depend 关键字使用

depend 关键字使用规则:

  • 1.只能在 config 中使用,因为它是接着前面一个 yml 用例继续写其他用例。
  • 2.目前只支持一个层级的引用如: b 引入a, 不支持多层级引入,如: c引入b, b又引入了a
  • 3.depend 后面写用例文件的路径,如果在同一目录,可以直接写文件名称,不在同一个目录,需从项目根目录开始,写相对路径。

当 test_a.yml 用例中有在config 定义变量 variables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  variables:
    x: hello
    y: world

test_x1:
  name: xx
  request:
    method: post
    url: http://httpbin.org/post
    json:
      title: aa
      message: bbb

test_x2:
  name: xx
  print: ${x} -- ${y}

test_b.yml 中没有定义config变量时,会默认读取test_a.yml 用例中定义的变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  depend: test_a.yml

test_b3:
  name: xx
  print: 输出结果--${y}

test_b.yml 中也可以定义config 变量,替换test_a.yml中的变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  depend: test_a.yml
  variables:
      y: aabcc

test_b3:
  name: xx
  print: 输出结果--${y}

此时 test_b3 用例引用变量${y} 得到的结果就是 aabbcc

当用例中有局部变量时,用例中定义的变量优先级是最高的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config:
  depend: test_a.yml
  variables:
      y: aabcc

test_b3:
  name: xx
  variables:
    y: aa1122
  print: 输出结果--${y}

此时 test_b3 用例引用变量${y} 得到的结果就是 aa1122

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
v1.4.4 版本新增对yaml 用例格式校验,不合法的用例格式不会被执行,避免出现用例格式不合法导致的报错。
上海-悠悠
2023/08/22
3440
pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
pytest + yaml 框架 -7.用例分层机制
当我们测试流程类的接口,需反复去调用同一个接口,就会想到复用API,在代码里面可以写成函数去调用。 那么在yaml 文件中,我们可以把单个API写到一个yaml 文件,测试用例去调用导入API。
上海-悠悠
2023/01/03
3630
pytest + yaml 框架 -7.用例分层机制
pytest + yaml 框架 -5.调用内置方法和自定义函数
在yaml用例文件中,有些数据不是固定的,比如注册账号,我需要每次生成不一样的,那么我们可以调用自己定义的函数 pip 安装插件
上海-悠悠
2023/01/03
1K0
pytest + yaml 框架 -8.一个yaml 文件可以支持多个用例了
一个yaml 文件中可以写多个用例,yaml 文件相当于py模块,每个用例相当于模块里面定义 pytest 的一个函数, 用例名称最好是test开头,如果不是test开头,也会帮你自动拼接成test开头的
上海-悠悠
2023/01/03
7570
pytest + yaml 框架 - 1.我们发布上线了!
基于 httprunner 框架的用例结构,我自己开发了一个pytest + yaml 的框架,那么是不是重复造轮子呢? 不可否认 httprunner 框架设计非常优秀,但是也有缺点,httprunner3.x的版本虽然也是基于pytest框架设计,结合yaml执行用例,但是会生成一个py文件去执行。 在辅助函数的引用也很局限,只能获取函数的返回值,不能在yaml中对返回值重新二次取值。 那么我的这个框架,就是为了解决这些痛点。。。。
上海-悠悠
2023/01/03
1.1K0
pytest + yaml 框架 - 1.我们发布上线了!
pytest + yaml 框架 -68.新增全局请求参数配置verify和headers
最近有小伙伴提到如何全局添加请求参数verify=False 和 全局请求添加头部参数如:{“x-token”: “xxx”} 之前的版本可以用fixture解决,v1.5.8版本可以支持在config中配置
上海-悠悠
2024/04/25
2260
pytest + yaml 框架 -68.新增全局请求参数配置verify和headers
pytest + yaml 框架 -62.支持yaml和json2种格式用例
之前教程全是yaml格式用例,有部分同学反馈不太习惯yaml格式,所以新增了json格式的用例。
上海-悠悠
2024/04/19
1870
pytest + yaml 框架 -62.支持yaml和json2种格式用例
pytest + yaml 框架 -15.fixtures 功能使用
前面讲到全局只登录一次,全部的yaml 用例都会公用一个请求会话。 那有些接口不需要登录怎么办呢?比如登录和注册的接口,是不需要带上登录 token 的。 我除了默认用到一个 requests_session 全局的内置 fixture,还预留了2个
上海-悠悠
2023/01/03
8690
pytest + yaml 框架 -6.hooks 钩子功能实现
在发送请求的时候,我们希望在发送请求参数前,带上签名的值,或者返回的内容需要二次处理,解密后返回。 此功能我们可以用 hooks 钩子来实现 pip 安装插件
上海-悠悠
2023/01/03
3810
pytest + yaml 框架 -45.用例分层设置变量默认值
最近有小伙伴提到API层的接口参数很多,全部设置为变量,后面用例引用会写很多值,会很费精力。 希望能在定义变量的时候,给默认值,这样在用例里面可以选择性的给部分参数设置变量值。
上海-悠悠
2023/08/22
2330
pytest + yaml 框架 -45.用例分层设置变量默认值
httprunner 4.x学习 - 3.variables 变量声明与引用
在 HttpRunner 中,支持变量声明(variables)和引用(var 或 {var} )的机制。在 config 和 step 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通过
上海-悠悠
2023/08/22
4930
httprunner 4.x学习 - 3.variables 变量声明与引用
pytest + yaml 框架 - 70.Pycharm 设置 yaml 格式用例模板,高效写用例
初学者对yaml 格式不太熟悉,自己写yaml用例的时候,总是格式对不齐,或者有些关键字会忘记。 于是我们可以在pycharm上设置用例模块,通过快捷方式调用出对应的模块,达到高效写用例的目的。
上海-悠悠
2024/06/08
3930
pytest + yaml 框架 - 70.Pycharm 设置 yaml 格式用例模板,高效写用例
pytest + yaml 框架 - 2.extract 提取结果与接口之间的参数关联
在自动化用例中,我们经常会看到有人提问,上一个接口的返回的结果,如何取出来给到下个接口的入参。 我们用 extract 关键字提取接口的返回结果。
上海-悠悠
2023/01/03
1.4K0
pytest + yaml 框架 -41.postman 和 python代码自动录制成yaml用例
python代码 和postman 写的接口也能通过录制功能自动生成yaml格式用例了。
上海-悠悠
2023/08/22
3090
pytest + yaml 框架 -41.postman 和 python代码自动录制成yaml用例
pytest + yaml 框架 -26.export 导出全局变量,支持跨yaml文件用例传参了!
v1.2.3 版本新功能,支持跨yaml文件用例传参了! 1.解决用例中,hooks单独写request 报错问题(在已发布的公开版本v1.2.0已经解决了) 2.内置to_json() 函数,字典转 json 3.export 导出功能, config 和 case 中都能添加。简单来说,就是test_a.yml 执行完成后,提取了变量x, 在后面的test_b.yml 和 test_c.yml 中可以直接引用变量x了。
上海-悠悠
2023/08/22
2870
pytest + yaml 框架 -26.export 导出全局变量,支持跨yaml文件用例传参了!
关键字驱动框架
通过Proxyman、Charles等工具抓包后,导出HAR包到data/har目录中。如果还没来得及抓,可以下载现成的:
dongfanger
2023/12/05
2191
关键字驱动框架
pytest + yaml 框架 -4.用例参数化parameters功能实现
当一个用例用到多组测试数据的时候,我们必然会用到参数化,接下来看下如何在yaml文件中实现参数化
上海-悠悠
2023/01/03
7850
pytest + yaml 框架 -52.支持 websocket 协议
ws关键字相当于create_connection(url, timeout=10) 创建连接 send 关键字相当于 ws.send('hello') 发送文本消息`
上海-悠悠
2023/08/22
1800
pytest + yaml 框架 -52.支持 websocket 协议
pytest-yaml 测试平台-5.平台实现用例分层API和用例层
在平台上可以添加API层和用例层,API层维护接口相关信息,用例层复用API层接口。
上海-悠悠
2024/01/29
2520
pytest-yaml 测试平台-5.平台实现用例分层API和用例层
httprunner 4.x学习 -8.base_url 环境地址的使用
config 中有个 base_url 关键字可以设置环境地址,这样其它接口就只需写相对地址了
上海-悠悠
2023/08/22
2800
httprunner 4.x学习 -8.base_url 环境地址的使用
推荐阅读
相关推荐
pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档