前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest + yaml 框架 -16.提供一些常用的内置函数和方法

pytest + yaml 框架 -16.提供一些常用的内置函数和方法

作者头像
上海-悠悠
发布2023-01-03 14:23:29
6030
发布2023-01-03 14:23:29
举报

前言

在测试的过程中经常会用到一些随机值,比如生成随机手机号,随机身份证,姓名等数据。

pip 安装插件

代码语言:javascript
复制
pip install pytest-yaml-yoyo

内置函数和方法在v1.1.2版本实现

内置方法

目前暂时提供了3个内置函数,和1个内置对象

  • current_time(f: str = ‘%Y-%m-%d %H:%M:%S’), 获取当前时间 默认格式为2022-12-16 22:13:00,可以传f参数自定义格式
  • rand_value(target: list) 从返回的 list 结果随机取值, 有小伙伴提到的需求
  • rand_str(len_start=None, len_end=None) 生成随机字符串,默认32位

还提供了一个内置的fake 对象,可以生成随机手机号,随机身份证,姓名等数据

使用方法:${fake.name()}, fake.phone_number(), fake.email() 等,具体查看Faker模块提供的方法https://www.cnblogs.com/yoyoketang/p/14869348.html

内置函数使用示例

current_time() 获取当前时间, 使用示例

代码语言:javascript
复制
获取当前时间:
-
  name: post
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${current_time()}
      password: "123456"
  validate:
    - eq: [status_code, 200]

rand_value(target: list) 从返回的 list 结果随机取值, 有小伙伴提到的需求

代码语言:javascript
复制
提取list值:
-
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      data: ["hello", "world", "hello world"]
  extract:
    res: $.json.data
  validate:
    - eq: [status_code, 200]

随机取一个结果:
-
  request:
    method: GET
    url: http://httpbin.org/get
    params:
      key: ${rand_value(res)}
  validate:
    - eq: [status_code, 200]

rand_str(len_start=None, len_end=None) 生成随机字符串,默认32位

rand_str 使用方法:{rand_str()} 得到32位字符串{rand_str(3)} 得到3位字符串

代码语言:javascript
复制

以上yaml,生成的json数据示例

代码语言:javascript
复制
"json": {
    "password": "07d",
    "username": "c1c91161b4"
  }

fake 对象的使用

内置的 fake 对象 (注意是fake,不是faker, 因为faker 是模块名称,避免冲突) ,可以生成随机手机号,随机身份证,姓名等数据

代码语言:javascript
复制
获取当前时间:
-
  name: post
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      name: ${fake.name()}
      tel: ${fake.phone_number()}
      email: ${fake.email()}
  validate:
    - eq: [status_code, 200]

生成的测试数据

代码语言:javascript
复制
{'name': '王建平', 'tel': 13056609200, 'email': 'jluo@example.net'}

其它更多方法参考Faker模块提供的方法https://www.cnblogs.com/yoyoketang/p/14869348.html

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 内置方法
  • 内置函数使用示例
  • fake 对象的使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档