13.接口自动化学习-Pytest结合Yaml使用

ops/2024/10/15 22:12:58/

问题:项目自动化测试脚本迭代出现变革技术方案
要求:测试用例从excel–变为yaml用例
注意事项:
1)尽可能少改代码
2)新技术方案yaml读取,尽可能写成一样的数据返回
[(请求体1,响应数据1),(请求体2,响应数据2)]
3)给pytest框架使用

  • handel_yaml.py
#安装环境yaml库 pip install pyYaml
import yaml# -------获取yaml测试用例------
"""
问题:项目自动化测试脚本迭代出现变革技术方案
要求:测试用例从excel--变为yaml用例
注意事项:
1)尽可能少改代码
2)新技术方案yaml读取,尽可能写成一样的数据返回
[(请求体1,响应数据1),(请求体2,响应数据2)]
3)给pytest框架使用
"""
def get_yamlCase_data(fileDir):resList=[]with open(fileDir,encoding='utf-8') as fo:res=yaml.safe_load(fo.read())print(res)for one in res:resList.append((one['title'],one['data'],one['resp']))return resListif __name__ == '__main__':vresList=get_yamlCase_data('../data/loginCase.yaml')print(resList)
  • loginCase.yaml
#-
#  url: &url1 /account/sLogin
#  method: &method1 POST
-title: 用户名正确,密码正确data:username: zz088password: "123456"resp:code: 20000msg: 登录成功
-title: 用户名正确,密码为空data:username: zz088password: ""resp:code: 9999msg: 用户名或密码错误
  • test_login.py yaml代替excel
import pytest,allure,os
from libs.login import Login
from utils.handle_excel import get_excel_data
from utils.handle_yaml import get_yamlCase_data
from utils.handle_path import report_path,data_path
from common.baseApi import BaseAssert
#TestLogin继承BaseAssert@allure.epic('项目名称-外卖项目')
@allure.feature('登录模块')
class TestLogin(BaseAssert):@pytest.mark.parametrize('title,inBody,expData', get_yamlCase_data( data_path+'\\loginCase.yaml'))# @pytest.mark.parametrize('inBody,expData,title', get_excel_data( '登录模块', 'Login','请求参数','响应预期结果','标题'))@allure.story('登录接口')@allure.title("{title}")def test_login(self,title,inBody,expData):# 1.调用业务层封装的接口代码res=Login().login(inBody)print(res['msg'],expData['msg'])# 2.断言实际返回结果与预期结果self.define_assert(res['msg'],expData['msg'])if __name__ == '__main__':pytest.main([__file__,'-sv','--alluredir',report_path,'--clean-alluredir'])os.system(f'allure serve {report_path}')

http://www.ppmy.cn/ops/16746.html

相关文章

【代码管理】Git删除仓库中的大文件压缩仓库大小

Git 仓库中有时会不小心加入了一些大文件,例如模型文件,视频文件 模型文件有可能以 .weights 结尾,或者 .onnx 结尾等等 视频文件有可能以 .avi 结尾,或者 .mp4 结尾 大文件如果一直在仓库中,仓库体积会非常大&#xf…

解决hive表新增的字段查询为空null问题

项目场景: 由于业务拓展,需要往hive分区表新增新的字段,hive版本为2.1.1-cdh6.3.2 于是利用 alter table table_name add columns (col_name string )新增字段,然后向已存在分区中插入数据,以为问题就解决了。 结果…

夜神、雷电、android studio手机模拟器资源占用情况

夜神、雷电、android studio手机模拟器内存资源占用情况 由于开发电脑只有16G内存,出于开发需要和本身硬件资源的限制,对多个手机模拟器进行了机器资源占用(主要是内存)的简单比较。 比较的模拟器包括: 1. Android S…

华纳云:如何使用Docker进行有效的日志管理?

使用 Docker 进行有效的日志管理可以帮助您轻松地收集、存储、分析和监控容器日志。以下是一些在 Docker 中实现有效日志管理的实践: 1.使用标准输出和标准错误输出:配置容器使其将日志输出到标准输出(stdout)和标准错误输出(stderr)。这样做可以让 Dock…

C++笔记打卡第23天(STL常用算法)

1.常用排序算法 sort&#xff1a;对容器内元素进行排序 class Myprint { public:void operator()(int val){cout << val << " ";} };// 查自定义数据类型 void test01() {vector<int> v;v.push_back(10);v.push_back(20);v.push_back(15);v.push_b…

Java在区块链开发中的作用及发展

Java在区块链开发中的作用以及发展 一、引言 随着信息技术的飞速发展&#xff0c;区块链技术作为一种新兴的去中心化分布式账本技术&#xff0c;正逐渐引起人们的广泛关注。区块链以其独特的不可篡改、去中心化、安全可信等特性&#xff0c;在数字货币、供应链管理、金融科技…

80个在线小游戏源码

源码简介 搭建80个在线小游戏网站源码&#xff0c;解压即可食用&#xff0c;支持在本地浏览器打开。 安装教程 纯HTML&#xff0c;直接将压缩包上传网站目录解压即可 首页截图 源码下载 80个在线小游戏源码-小8源码屋

普冉PY32F071单片机简单介绍,QFN64 48封装,支持 8 * 36 / 4 * 40 LCD

PY32F071单片机是一款基于32 位 ARM Cortex - M0内核的微控制器&#xff0c;由普冉半导体推出。PY32F071可广泛应用于各种嵌入式系统中&#xff0c;包括消费类电子产品、工业自动化、医疗设备等领域。PY32F071系列单片机具有低功耗、高性能和丰富的外设接口等特点&#xff0c;适…