最细接口自动化测试yaml框架,超全详解,一篇打通...


前言

YAML文件介绍
YAML 是一种可读性非常高,与程序语言数据结构非常接近。同时具备丰富的表达能力和可扩展性,并且易于使用的数据标记语言。

YAML全称其实是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写,所以它强调的是数据本身,而不是以标记为重点

为什么要使用YAML文件?
其实YAML文件也是一种配置文件,但是相较于ini,conf配置文件来说,更加的简洁,操作简单,还能存放不同类型的数据;而像ini存储的值就都是字符串类型,读取之后还要手动转换

基本语法规则
大小写敏感;
使用缩进表示层级关系;
缩进时不允许使用Tab键,只允许使用空格。(可以将你的ide的tab按键输出替换成4个空格);
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可;
#表示注释;

支持的数据结构
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary);
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list);
纯量(scalars):单个的、不可再分的值;

YAML,对象数据类型
对象的一组键值对,使用冒号结构表示。

animal: dogs

转换成Python数据结构,如下:

{
    
    'animal': 'dogs'}

将所有键值对赋值。

hash: {
    
     name: Steve, foo: bar }

转换成Python数据结构,如下:

{
    
    'hash': {
    
    'name': 'Steve', 'foo': 'bar'}}

将列表赋值

lists : [1,2,3]

转换成Python数据结构,如下:

{
    
    'lists': [1, 2, 3]}

将元组赋值

tuples : (1,2,3)

转换成Python数据结构,如下:

{
    
    'tuples': '(1,2,3)'}

当赋值列表、键值对时,转换成Python数据结构是可以直接当列表、字典使用的;
当赋值元组时,转换后也是字符串;
最终输出的都是字典类型,可以通过key获取对应的值;

YAML,数组
这里说的数组结构跟 [1,2,3,4] 不太一样,如下:

cool_list:
  - 10
  - 15
  - 12

hard_list:
  - {
    
    key: value}
  - [1,2,3]
  - test:
      - 1
      - 2
      - 3

twice_list:
  -
    - {
    
    a: b}
    - {
    
    c: d}
    - {
    
    e: f}

转换成Python数据结构,如下:

'cool_list': [10, 15, 12], 
'hard_list': [
    {
    
    'key': 'value'}, 
    [1, 2, 3], 
    {
    
    
        'test': [1, 2, 3]
    }
],
'twice_list': [
    [
        {
    
    'a': 'b'}, 
        {
    
    'c': 'd'}, 
        {
    
    'e': 'f'}
    ]
]

当你写成下面这种数据结构时 ,也会自动转成字典类型,如: {‘key’: ‘value,val2’}

key:
    value,val2

YAML,纯量
纯量是最基本的、不可再分的值;类似基本数据类型

字符串;布尔值;整数;浮点数;时间;日期;Null

int: 12
float: 12.3
string: pets
bool: true
None: null
time: 2001-12-14t21:59:43.10-05:00
date: 2023-06-27

执行结果

{
    
    
   'int': 12, 
   'float': 12.3, 
   'string': 'pets', 
   'bool': True, 
   'None': None, 
   'time': datetime.datetime(2001, 12, 14, 21, 59, 43, 100000, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))), 
   'date': datetime.date(2023, 6, 27)
}

时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区;
日期必须使用ISO 8601格式,即 yyyy-MM-dd ;
bool类型:true,True,false,False都可以;
可以用 ~ 表示 null ;

YAML,字符串详解
字符串是最复杂,但是又最常见的一种数据类型。
字符串默认不使用引号 ‘’ “” 包裹着
基础写法

str: 这是一行字符串

转换成Python数据结构,如下:

{
    
    'str': '这是一行字符串'}

什么情况下要用引号?当字符串包含了空格or特殊字符等

str_s: "字符串包含 空格&特殊字符!@#$%^&*()"

转换成Python数据结构,如下:

{
    
    'str_s': '字符串包含 空格&特殊字符!@#$%^&*()'}

要注意的是,双引号 “” 不会对特殊字符转义

str1: 'test\n1'
str2: "test\n2"

转换成Python数据结构,如下:

{
    
    'str1': 'test\\n1', 'str2': 'test\n2'}

可以拆分多行,每一行就是一个空格,但是要注意他们的层级必须一致

st_string: hello
           world

转换成Python数据结构,如下:

{
    
    
   'st_string': 'hello world'
}

YAML,类型强转
YAML 允许使用两个感叹号,强制转换数据类型

is: !!str 123
sf: !!float '12.22'
si: !!int '222'

执行结果如下

{
    
    
  'is': '123', 
  'sf': 12.22, 
  'si': 222
}
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

努力奋斗,不断超越自己的极限;坚持不懈,勇往直前的脚步;热情高涨,永不放弃的信念;心怀梦想,追逐辉煌的未来;时刻拼搏,才能收获无限可能。相信自己,你一定能行!

只有奋斗才能让梦想照亮未来的道路。不要畏惧困难,用勇气和毅力迎接挑战。每一步都是成长的机会,坚持努力,你必将收获辉煌的人生。相信自己,坚定前行!

只要努力不懈,成功将会无可避免;坚持追求,梦想必将实现;每一次挫折都是成长的踏板,勇敢面对困难,你将发现内心的力量。相信自己,奋斗不止!

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/131439538