首页 > 其他分享 >pytest + yaml 框架 -25.参数化数据支持读取外部文件txt/csv/json/yaml

pytest + yaml 框架 -25.参数化数据支持读取外部文件txt/csv/json/yaml

时间:2023-04-19 09:33:55浏览次数:38  
标签:username 25 password yaml json test txt csv data

前言

v1.2.2版本开始,参数化数据支持读取外部文件,文件格式可以支持:txt/csv/json/yaml

参数化的实现

用例参数化的实现,我设计了2种实现方式

参数化方式1:

  config:
     name: post示例
     fixtures: username, password
     parameters:
       - [test1, '123456']
       - [test2, '123456']

参数化方式2:

  config:
     name: post示例
     parameters:
       - {"username": "test1", "password": "123456"}
       - {"username": "test2", "password": "1234562"}

详情参看前面参数化的介绍https://www.cnblogs.com/yoyoketang/p/16932156.html

内置 p 函数

内置 p 函数可以支持读取外部文件数据,文件格式可以支持:txt/csv/json/yaml
可以传2个参数

  • 参数1,传文件的路径,可以是相对路径,如:data/yoyo.txt
  • 参数2,布尔值,是否需要读取第一行title数据,默认是,针对txt/csv文件

读取json、yaml文件示例

data/x2.json 文件内容

[
  {"username": "test1", "password": "123456"},
  {"username": "test2中文", "password": "1234562"}
]

data/x3.yml 文件内容

- {"username": "test1", "password": "123456"}
- {"username": "test2中文", "password": "1234562"}

test_json_yaml.yml

config:
    name: 参数化读取文件json和yaml


test_p1:
    print: ${username}
    parameters: ${p('data/x2.json', False)}


test_p2:
    print: ${username}
    parameters: ${p('data/x3.yml')}

如果不需要title,在用例中使用fixtures关键字显示声明参数名称
data/y2.json 文件内容

[
  ["test1", "123456"],
  ["test2中文", "1234562"]
]

data/y4.yml 文件内容

- ["test1", "123456"]
- ["test2中文", "1234562"]

test_json_yaml2.yml

config:
    name: 参数化json和yaml


test_p1:
    print: ${username}
    fixtures: username,password
    parameters: ${p('data/y2.json', False)}


test_p2:
    print: ${username}
    fixtures: username,password
    parameters: ${p('data/y4.yml')}

读取txt文件示例

data/x1.txt 文件内容

test1,123456
test2,1234562

data/x2.txt 文件内容 带第一行title

username,password
test1,123456
test2,1234562

test_text.yml

config:
    name: 参数化读取文件txt


test_p1:
    print: ${username}
    fixtures: username, password
    parameters: ${p('data/x1.txt', False)}


test_p2:
    print: ${username}
    parameters: ${p('data/x2.txt')}

读取csv 文件示例

data/xx.csv 文件内容

test1中文,123456
test2,1234562

data/yy.csv 文件内容

username,password
test1中文,123456
test2,1234562

test_csv.yml

config:
    name: 参数化读取文件csv


test_p1:
    print: ${username}
    fixtures: username, password
    parameters: ${p('data/xx.csv', False)}


test_p2:
    print: ${username}
    parameters: ${p('data/yy.csv')}

标签:username,25,password,yaml,json,test,txt,csv,data
From: https://www.cnblogs.com/yoyoketang/p/17332110.html

相关文章

  • 69、K8S-Helm-template导出独立的yaml文件
    1、将helm项目导出为独立yaml文件-实践1.1、需求有时候,我们需要导出yaml分析yaml编写情况,而不是直接部署到k8s,这个时候,就需要使用template来实现了1.2、开始操作1.2.1、创建存放yaml文件的目录helm_prometheus]#cd/opt/helm_prometheus/&&mkdirprometheus-tplhelm_p......
  • python csv.reader 读取文件或list
    读取文件withopen(file_path,encoding='UTF-8')asfile:lines=csv.reader(file,delimiter="#",quotechar='"')forrowinlines:print(row)读取list注意:如果是字符串,一定要转成list.例如 rows=csv.reader(["John#......
  • python如何对.csv文件里面的信息进行数据可视化
    相关步骤1、首先打开.csv文件2、然后获取任意指定列的所有数据3、绘制出折线图4、然后由于国家数量过多,就成了这副样子但是数据是没有错误的尝试更改后,其实也是没有啥效果;然后就把他放在世界地图了:......
  • Hackers' Crackdown UVA11825
    你需要将n个集合分成尽量多组,使得每一组里面所有集合的并集等于全集  32122022014111013120   f[S]=max(f[S],f[S-j]+1)且j是一个包含所有点的集合#include<iostream>#include<algorithm>#include<cstring>usingname......
  • Codeforces Round 625 (Div. 1, based on Technocup 2020 Final Round) A. Journey Pl
    https://codeforces.com/contest/1320/problem/AA.JourneyPlanning题目大意:给定一组数,问我们ai-aj==i-j的时候就可以把ai的值加起来,问我们可以凑到的最大总值是多少?input6107191015output26input1400000output400000input7892611122914out......
  • angular项目国际化yaml自定义配置(ngx-translate)
    angular国际化配置很简单,但是想不用json文件用yaml文件,并且同一语言分label.jp.yaml和message.jp.yaml两个文件分开管理。1、下载ngx-translate的依赖库npminstall@ngx-translate/core--savenpminstall@ngx-translate/http-loader--save2、app.module.ts 中引入TranslateMo......
  • 修复 导出csv中文乱码
    header('Content-Encoding:UTF-8');header("Content-type:text/csv;charset=UTF-8");header("Content-Disposition:attachment;filename={$file_name}.csv");header("Pragma:no-cache");......
  • sha256 和hamc-sha256区别
    签名哈希函数SHA-256:SHA-256是全称为SecureHashAlgorithm256(安全散列算法256)的缩写。SHA-256可以将任意长度的数据计算成一个长度为256位的哈希值,在数字签名中得到广泛应用。SHA-512:SHA-512是SHA-256的加强版,可以生成更长、更不易被碰撞的消息摘要。在一些对于安全......
  • 225 队列实现stack
         解决方法简单粗暴,把队列前面的都取出来再加入队尾,让之前的队尾元素排到队头,这样就可以取出了: importqueueclassMyStack:def__init__(self):self.q=queue.Queue()self.top_element=0defpush(self,x:int)->None:......
  • abc250_d 250-like Number 题解
    250-likeNumber题意给定一个整数\(n\),求有多少小于等于\(n\)的满足以下条件的整数\(k\):\(k\)可以被表示为\(k=p\timesq^3\),其中\(p\ltq\),并且\(p,q\)均为质数。数据范围\(1\leqslantn\leqslant10^{18}\),\(n\)是整数。思路首先,我们发现这个式子中......