参数化
1、代码驱动:
——用例完全是靠代码来执行的,不执行代码,用例不会执行。
import requests def test_more(self,name,age): data = {'stu_name':name,'age':age} r = requests.get(self.url,data) print(r.json())
2、数据驱动:
——用例都是代码写的,有几条就运行几次,没用数据,就会运行不了;如:xiaohei,xiaobai,dahuang,三条数据就会执行3次。
3、关键字驱动
UI 自动化的时候使用;原理:{'点击’:click, '双击:dbclick,'退出‘:exit},就是点击一个就会执行对应的函数下边的方法。
方法:
I . 文件中读取数据,使用@parameterized.parameterized.expand(),判断测试的数据是否存在
——参数类型都一样,数据过多时,可使用
import unittest import requests import parameterized import os class GetData: @staticmethod #连接txt文件,因为类中的几个方法都是互相之间没有关联,所以使用了@staticmethod def read_data_to_file(filename): data = [] if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as fr: for line in fr: d1 = line.strip().split(',') #每行分隔完之后变成一个数组 data.append(d1) else: raise FileNotFoundError('参数化文件找不到') return data @staticmethod #连接Excel def read_data_to_excel(file_name): pass @staticmethod #连接Redis def read_data_to_redis(key): pass @staticmethod #连接Mysql def read_data_to_mysql(sql): pass class StuInfoTest(unittest.TestCase): url = 'http://api.nnzhp.cn/api/user/stu_info' @parameterized.parameterized.expand(GetData.read_data_to_file('stu_info.txt'))
#parameterized.parameterized.expand()是有多少个参数,调用多少次,可自动的循环进行调用
def test_single(self,name,age): print(name,age) data = {'stu_name':name,'age':age} r = requests.get(self.url,data) print(r.json())
本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/14891402.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架