首页 > 其他分享 >pytest + yaml 框架 -16.提供一个常用的内置函数和方法生成随机测试数据

pytest + yaml 框架 -16.提供一个常用的内置函数和方法生成随机测试数据

时间:2022-12-16 22:56:05浏览次数:56  
标签:rand 内置 name 16 yaml pytest 随机 str fake

前言

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

内置方法

目前暂时提供了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() 获取当前时间, 使用示例

获取当前时间:
-
  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 结果随机取值, 有小伙伴提到的需求

提取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位字符串
${rand_str(3, 10)} 得到3-10位字符串


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

"json": {
    "password": "07d",
    "username": "c1c91161b4"
  }

fake 对象的使用

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

获取当前时间:
-
  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]

生成的测试数据

{'name': '王建平', 'tel': 13056609200, 'email': '[email protected]'}

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

标签:rand,内置,name,16,yaml,pytest,随机,str,fake
From: https://www.cnblogs.com/yoyoketang/p/16988450.html

相关文章

  • EasyPytest测试平台开发日志之系统设计
    EasyPytest测试平台,帮你高效管理Pytest测试用例。EP平台的定位是Pytest测试用例管理平台,80%的自动化用例开发在PyCharm等专业的IDE中进行,20%的用例调度和结果查看就交给E......
  • 闲话 22.12.16
    闲话字符串能不能滚出OI啊?......
  • 12.16
    今日内容1.图书管理系统讲解2.聚合查询3.分组查询4.F与Q查询1.图书管理系统讲解1.表设计 先考虑普通字段再考虑外键字段 数据库迁移、测试数据录入2.首页展示3.......
  • 字符缓冲输入流读数据 1216
    importjava.io.BufferedReader;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;publicclassTest2{publicstaticvo......
  • 字节流拷备文档 学会了可以拷一切 1216
    importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;publicclassTest2{publicst......
  • Spring源码-16-容器refresh之registerBeanPostProcessors方法
    Spring源码-16-容器refresh之registerBeanPostProcessors方法//AbstractApplicationContext.java/** *5Bean实例化初始化之前将后置处理器注册到容器中 *......
  • 使用字符流完成文档的拷备 1216
    importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;publicclassTest1{publicstaticvoidm......
  • Pytest框架断言总结
      案例1:使用assert进行断言"""pytest框架使用python中的assert进行断言assertainbasserta==basserta!=bassertnotaasserta"""importpytestdeffu......
  • 字符输入流遍历读数据 使用字符数组容器 1216
    importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;publicclassTest4{publicstaticvoidmain(String[]args)throws......
  • 字符输入流一个一个读数据 1216
    importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;publicclassTest3{publicstaticvoidmain(String[]args)throws......