您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python接口自动化测试数据和代码分离解析

51自学网 2021-10-30 22:13:29
  python
这篇教程python接口自动化测试数据和代码分离解析写得很实用,希望能帮到您。

common中存放的是整个项目中公共使用的封装方法

从工程目录上可以看到区分

datas中专门存放测试数据(yml文件)

cases中专门集中存放测试用例 ...

数据分离的第一步先找到工程项目路径

# -*- encoding: utf-8 -*-"""@__Software__: PyCharm@__File__: osPath.py@__Date__: 2021/6/14 21:08"""import os  # 获取项目的根目录,apiTest层FILE = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 获取存放测试数据的文件夹DATAS = os.path.join(FILE, 'datas')print(DATAS)
 F:/project_gitee/Test/apiTest/datas Process finished with exit code 0

运行结果可以清晰看到,已经找到存放数据的文件夹路径并拼接成功 ...

os模块不熟悉可参考菜鸟教程

数据分离的第二步封装一个读取yml文件的函数或类方法

这里就先写一个函数把

首先要先安装yml

 pip install pyaml

再导入包,然后再进行封装

# -*- encoding: utf-8 -*-"""@__Software__: PyCharm@__File__: readData.py@__Date__: 2021/6/14 21:07""" import osimport yamlfrom common import osPath as sp def read_yml(file):    with open(file, mode='r', encoding='utf-8') as read_data:        results = yaml.load(read_data, Loader=yaml.FullLoader)        return resultsprint(read_yml(os.path.join(sp.DATAS, 'test_data.yml')))
 {'test_data': [[{'type': 1}, {'reason': '查询成功!'}], [{'type': 2}, {'reason': '查询成功!'}], [{'type': 3}, {'reason': '查询成功!'}]]} Process finished with exit code 0

读取yml的函数写完以后,要记得测试下是否满足自己需要的功能;从结果来看满足我目前需要功能 ...

yaml语法不熟悉的也可以参考菜鸟教程

数据分离的第三步测试用例中引入数据并运行

# -*- encoding: utf-8 -*-"""@__Software__: PyCharm@__File__: test_example.py@__Date__: 2021/6/13 19:00"""import osimport pytestimport requestsfrom common import osPath as spfrom common.readData import read_ymlclass TestExample:    s = requests.Session()    data = read_yml(os.path.join(sp.DATAS, 'test_data.yml'))     @pytest.mark.parametrize("test_data, expected", data['test_data'])    def test_example(self, test_data, expected):        with self.s as s:            url = "http://apis.juhe.cn/fapig/euro2020/schedule?key=9d0dfd9dbaf51de283ee8a88e58e218b"            response = s.get(url, params=test_data)            print(response.json())             assert response.json()["reason"] == expected["reason"] if __name__ == '__main__':    pytest.main(["-v", "-s", "test_example"])
Launching pytest with arguments F:/project_gitee/Test/apiTest/cases/test_example.py in F:/project_gitee/Test/apiTest/cases============================= test session starts ============================ collecting ... collected 3 itemstest_example.py::TestExample::test_example[test_data0-expected0] test_example.py::TestExample::test_example[test_data1-expected1] test_example.py::TestExample::test_example[test_data2-expected2]  ============================== 3 passed in 0.66s ==============================

data['test_data']是字典取值,取key为test_data的value值 ...

从返回的结果可以清晰看到,3 passed,且用时0.66s ...

至此,测试数据和代码分离完成 ...

以上就是python接口自动化测试数据和代码分离解析的详细内容,更多关于python接口自动化测试资料请关注51zixue.net其它相关文章!


Django框架HttpResponse和HttpRequest对象学习
PyTorch一小时掌握之图像识别实战篇
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。