html静态网站开发实验,设计网页的心得体会与总结,佛山网站优化效果,软件开发培训学校软件开发培训机构目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言
ddt 驱动 yaml/ym… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言
ddt 驱动 yaml/yml 文件来实现数据驱动测试
ddt.file_data装饰测试方法参数是文件名。文件可以是 json 或者 yaml 类型。
注意如果文件是以 “.yml”或者.yaml 结尾ddt 会作为 yaml 类型处理其他文件都会作为 json 文件处理。
如果文件是列表列表的值会作为测试用例参数同时会作为测试用例方法名后缀显示。
如果文件是字典字典的 key 会作为测试用例方法的后缀显示字典的 value 会作为测试用例参数。
1、yaml 文件基础格式要求
基础语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用 tab只允许空格 缩进的空格数不重要只要相同层级的元素左对齐即可 ‘#’ 表示注释
YAML 支持以下几种数据类型 对象键值对的集合又称为映射mapping/ 哈希hashes / 字典dictionary 数组一组按次序排列的值又称为序列sequence / 列表list 纯量scalars单个的、不可再分的值 yaml 列表结构 以 - 开头的行表示构成一个数组
# data.yaml 文件内容-data1
-data2
-data3import yamlf open(data, encodingutf8)
v yaml.load(f)
print(v)
print(type(v))
f.close()# 结果如下
[data1, data2, data3]
class listyaml 多维列表结构
# data.yaml 文件内容-- data1- data2
-data3import yamlf open(data, encodingutf8)
v yaml.load(f)
print(v)
print(type(v))
f.close()# 结果如下
[[data1, data2], data3]
class listyaml 字典结构 字典结构没有 - 冒号前为键冒号后为值 冒号后面一定要空格
# data.yaml 文件内容username : admin
password : 123456import yamlf open(data, encodingutf8)
v yaml.load(f)
print(v)
print(type(v))
f.close()# 结果如下
{username: admin, password: 123456}
class dictyaml 多维字典结构
# data.yaml 文件内容data :username: adminpassword: 123456
code : 0000
msg : 登录成功import yamlf open(data, encodingutf8)
v yaml.load(f)
print(v)
print(type(v))
f.close()# 结果如下
{data: {username: admin, password: 123456}, code: 0000, msg: 登录成功}
class dict列表 字典复杂结构
# data.yaml 文件内容-username : adminpassword : 123456
-username : Evanpassword : xxxxxximport yamlf open(data, encodingutf8)
v yaml.load(f)
print(v)
print(type(v))
f.close()# 结果如下
[{username: admin, password: 123456}, {username: Evan, password: xxxxxx}]
class listyaml 纯量 字符串布尔值整数浮点数Null时间日期
boolean: - TRUE #true,True都可以- FALSE #falseFalse都可以
float:- 3.14- 6.8523015e5 #可以使用科学计数法
int:- 123- 0b1010_0111_0100_1010_1110 #二进制表示
null:nodeName: nodeparent: ~ #使用~表示null
string:- 哈哈- Hello world #可以使用双引号或者单引号包裹特殊字符- newlinenewline2 #字符串可以拆成多行每一行会被转化成一个空格
date:- 2018-02-17 #日期必须使用ISO 8601格式即yyyy-MM-dd
datetime: - 2018-02-17T15:02:3108:00 #时间使用ISO 8601格式时间和日期之间使用T连接最后使用代表时区
2、实例详细
pip install pyyaml注意安装的包名为 pyyaml但是导入的是 yaml
yaml 文件可以通过 open 函数来读取然后通过 load() 方法转换成字典 如下图实例 import yamlf open(ddt_data.yaml, encodingutf8)
print(yaml.load(f))
f.close()# 运行结果如下[{
url: http://cms.duoceshi.cn/xxx/xxxx/xxxxx,
method: post,
header: {Content-Type: application/x-www-form-urlencoded},
params: {userAccount: admin, loginPwd: 123456}
}]如下图为我的数据文件且文件中数据类型为字典 import requests
import unittest
from ddt import ddt, file_dataddt
class CmsLogin(unittest.TestCase):file_data(ddt_data.yaml)def testcase(self, method, url, header, params):res requests.request(method, url, headersheader, dataparams)print(res.text)if __name__ __main__:unittest.main()# 运行结果如下Ran 2 tests in 0.215s..
{code:200,msg:登录成功,model:{}}
{code:400,msg:登录帐号不存在,model:{}}
----------------------------------------------------------------------如下图为我的数据文件且文件中数据类型为列表 import yaml
from ddt import ddt, data, unpackdef get_yml_data(yml_file):with open(yml_file, encodingutf8) as f:return yaml.load(f)ddt
class CmsLogin(unittest.TestCase):data(*get_yml_data(ddt_data.yml))unpackdef testcase(self, name, age):print(name ---- str(age))if __name__ __main__:unittest.main()# 运行结果如下Ran 3 tests in 0.000s...
Evan----19
Lvan----20
Alex----21下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
生命的意义在于奋斗拥抱挑战超越自我。跨越艰难攀登巅峰用汗水书写辉煌的传奇。相信自己的力量坚持不懈绽放梦想的光芒让每一次努力都成为自己成长的里程碑
积极拥抱挑战不畏困难努力前行。胜利属于勇敢者成功源于不懈奋斗。牢记初心使命砥砺前行用汗水浇灌理想的花朵绽放生命的壮丽篇章。
勇往直前不屈不挠奋斗的汗水浇灌希望的花朵。追逐梦想超越自我用拼搏书写属于自己的传奇篇章。每一次努力都是收获的种子坚信奋斗未来必将绽放出耀眼的光芒