服务器网站建设教程,南阳网站建设,医疗网站设计,通明建设网站一、数据驱动#xff1a;pytest.mark.parametrize(#xff09;
首先看个样本#xff1a;
import pytestclass TestData:# parametrize有两个值#xff0c;一个是args_name:参数名#xff0c;一个是args_value:参数值,可以有多个#xff0c;进行数据解包# args_value可以…
一、数据驱动pytest.mark.parametrize(
首先看个样本
import pytestclass TestData:# parametrize有两个值一个是args_name:参数名一个是args_value:参数值,可以有多个进行数据解包# args_value可以是list列表数组字典列表在数据中有多少个值接口用例就会执行多少次相等于遍历# 基础用法 pytest.mark.parametrize(name, [李四, 王五])def test_data(self, name):print(name)# 多层数据解包pytest.mark.parametrize(name,age, [[李四, 15岁], [王五, 16岁], [刘大, 126岁]])def test_data1(self, name, age):print(name, age)
上面的测试数据都是死的项目中很少把测试用例 数据写在py文件中那么就需要单独对数据进行封装就有了yaml文件或excel文件进行数据驱动封装
二、了解yaml详情及写法 一种数据格式 主要作用 1、配置文件 2、测试用例 数据组成 1、map对象键(空格)值对如a: b 2、多组需要用-开头标注为不同组数据
-name: 正确验证码登录request:method: geturl: http://域名/jeecg-boot/sys/logindata:captcha: Gkak!#2019scheckKey: 1637811815838password: 123456remember_me: 1username: adminvalidate: None
-name: 错误验证码登录request:method: geturl: http://ip:端口号/jeecg-boot/sys/logindata:captcha: Gkak!#2019scheckKey: 1637811815838password: 123456remember_me: 1username: admin
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号822269834【暗号csdn999】 三、首先我们要读取yaml文件的方法
之前封装过一个yaml工具类文件我们只需在里面加入下面这方法即可 # 读取测试用例的Yaml文件def readCaseYaml(self, yamlfileDir, yamlfileName):work os.getcwd() / yamlfileDir / yamlfileNameprint(work)with open(work, moder, encodingutf-8) as f:value yaml.load(streamf, Loaderyaml.FullLoader)return value
四、统一接口请求封装
因为如果我么需要多所有的接口请求进行分析处理日志监控这样我们就需要制定提取出接口请求的规则
import jsonimport requestsclass RequestUnit:session requests.session()def sendRequest(self, method, url, data, **kwargs):#把请求方法改成小写method str(method).lower()rep None#get请求以params接参数if method get:rep RequestUnit.session.request(methodmethod, urlurl, paramsdata, **kwargs)# post请求以data接参数,原因data只能传输简单的只有键值对的dict或者str格式的数据json一般只能传输dict格式简单复杂的都可以#data可以满足多种格式那我们只需把都转成str类型elif methodpost:# 把键值对转换成str类型data json.dumps(data)rep RequestUnit.session.request(methodmethod, urlurl, datadata, **kwargs)return rep.text
遗留问题 1、yaml文件里面怎么使用动态参数 2、yaml文件里面怎么实现文件上次 3、yaml文件怎么实现断言断言写在py接口请求文件里又过于多了 4、yaml文件数据量过多咋办 带着问题继续学习思考。。。
最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。