摘要: 1. yaml文件中添加validate进行接口断言 首先我们在utils/validate.py文件添加需要的断言方式 import re def equals(check_value, expect_value): assert check_value == expect_value, f'{c 阅读全文
posted @ 2023-12-02 11:14 dack_deng 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1. extract提取请求返回结果的返回值 在进行接口自动化的时候,往往需要提取上一个接口返回的值,传递给下一个接口使用。 创建utils/extract.py import json import re import jsonpath import jmespath from utils imp 阅读全文
posted @ 2023-12-01 17:31 dack_deng 阅读(100) 评论(0) 推荐(1) 编辑
摘要: 1. pytest内置fixture 的caplog的配置 pytest 自动捕获级别为 WARNING 或以上的日志消息,并以与捕获的 stdout 和 stderr 相同的方式在每个失败测试的各自部分中显示它们。 日志级别如下,级别由低到高 DEBUG INFO WARNING ERROR CR 阅读全文
posted @ 2023-12-01 10:09 dack_deng 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 前言 前面几个章节,我们主要是如何通过yaml文件的数据自动转换成测试用例,并按照关键字去执行,如下是之前我们通过参数化的形式手动执行用例。 from utils.run import RunByKey # 获取文件路径 file_path = Path(__file__).parent.joinp 阅读全文
posted @ 2023-11-28 21:08 dack_deng 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 前言 在第一篇文章中,我们讲过了通过钩子函数pytest_collect_file可以收集到yaml格式的用例,并且可以生成测试用例。 想要动态生成测试用例,也就是动态生成测试函数,然后pytest收集到test开头的func,执行测试函数。关键代码如下所示: def run_function(*a 阅读全文
posted @ 2023-11-27 20:37 dack_deng 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 前言:上篇使用jinja2模板渲染数据是在读取yaml文件的时候,进行渲染。这种肯定不是关键字框架的渲染的方式。正常我们想要的而是在yaml文件中写入我们想要渲染的数据,然后读取之后渲染到测试yaml用例中。 1. 在yaml文件中引入变量 由于变量在yaml中先声明,后引用,所以不能直接渲染整个y 阅读全文
posted @ 2023-11-25 14:49 dack_deng 阅读(3295) 评论(2) 推荐(0) 编辑
摘要: 前言:引用渲染变量的模板有2个,一个是字符串模板,另一个是Jinja2模板 1. 字符串模板 1.1.1 通过字符串格式化方法进行渲染需要渲染的变量: name = "dack" age = 23 x = 'my name is %s, my age is %d' % (name, age) pri 阅读全文
posted @ 2023-11-24 18:14 dack_deng 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1. 封装request运行方法 我们将测试数据写到yaml文件中,通常会使用pytest框架parametrize参数化的方式读取yaml文件数据生成测试用例,于是我们可以根据这个思路来开发。 # utils/request_session.py import requests import re 阅读全文
posted @ 2023-11-24 11:33 dack_deng 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 1.pytest收集测试用例规则 pytest框架在收集用例的时候,默认会查找test_开头的.py 模块,并且在模块中找到test_ 开头的函数或Test开头的类。 根据这个规则,如果我们想收集yaml格式的文件当用例执行,需解决2个问题: 1.修改用例收集规则,改成收集yaml格式文件作为收集的 阅读全文
posted @ 2023-11-23 10:14 dack_deng 阅读(191) 评论(1) 推荐(0) 编辑
摘要: 话不多说,只要写了几个线性表的操作,其中包括:表的反转,表的相邻节点间data的最大值,以及2个链表按照顺序大小合并 // 头文件:link_list.h typedef int data_t; typedef struct node{ data_t data; struct node *next; 阅读全文
posted @ 2023-09-22 15:14 dack_deng 阅读(6) 评论(0) 推荐(0) 编辑