首页IT科技pythonunittest接口框架封装了哪些方法(Python unittest+ddt+openpyxl+configparser)

pythonunittest接口框架封装了哪些方法(Python unittest+ddt+openpyxl+configparser)

时间2025-04-29 02:29:08分类IT科技浏览3575
导读:1.技术介绍 框架:unittest...

1.技术介绍

框架:unittest

请求处理:requests

excel数据处理:openpyxl

参数化:ddt

配置解析器:configparser

报告模板:HTMLTestRunnerNew.py(下载地址:https://pan.baidu.com/s/1w9AZU9AkIpxCYuzTto0EQA?pwd=1234)

testdemo.xlsx:测试数据           ,注意:implement=y为执行数据                 ,否则不执行

2.代码结构

3.目录介绍

4.excel数据

5.case.config

[CASE] caseid=[1,3]

6.Docase.py

#测试用例类 import unittest from test02.DoHttp import Request_Http#引入请求类 from ddt import ddt,data,unpack#引入ddt做参数化 from test02.DoExcel import GetExcelData data_list = GetExcelData("C:\\Users\\Administrator\\Desktop\\testdemo.xlsx","s1").get_data() #用例类 @ddt#装饰器装饰类 class HttpCase(unittest.TestCase):#继承unittest测试用例类 @data(*data_list)#脱外套 def test_login_yes(self,item): res = Request_Http(item["method"], item["url"], item["data"]).request_http() try: self.assertEqual(item["expect"],res.json()["code"])#断言:预期与实际是否相等 except Exception as e: print("断言异常:{0}".format(e)) raise e#抛出异常

7.DoConfig.py

import configparser class GetConfig(): def get_config_data(self,file,section,option): cf = configparser.ConfigParser() cf.read(file, encoding="utf8") # 读取config    ,有中文注意编码 # 返回value return cf[section][option]

8.DoExcel.py

from openpyxl import load_workbook from test02.DoConfig import GetConfig class GetExcelData(): def __init__(self,file,sheet): self.file=file self.sheet=sheet def get_data(self): caseid = eval(GetConfig().get_config_data("case.config","CASE","caseid"))#处理配置文件获取要执行的caseid wb = load_workbook(self.file)#打开excel sheet = wb[self.sheet]#定位工作簿 data_list = [] for n in range(2,sheet.max_row+1): data_dic = {} for m in range(2,sheet.max_column+1): data_dic["case_id"] = sheet.cell(n, 1).value data_dic["module"] = sheet.cell(n, 2).value data_dic["title"] = sheet.cell(n, 3).value data_dic["method"]=sheet.cell(n,4).value data_dic["url"]=sheet.cell(n,5).value data_dic["data"]=eval(sheet.cell(n, 6).value)#还原数据类型 data_dic["expect"]=sheet.cell(n, 7).value if data_dic["case_id"] in caseid:#判断case_id是否包含在配置文件中 data_list.append(data_dic) return data_list

5.DoHttp.py

#http请求处理类 import requests class Request_Http(): def __init__(self,method,url,data,expected=None,headers=None,cookie=None): self.method=method.lower()#请求方式转小写 self.url=url self.data=data self.excepted=expected self.headers=headers self.cookie=cookie def request_http(self): if self.method=="get": try: return requests.get(self.url, params=self.data, headers=self.headers, cookies=self.cookie) except Exception as e: print("异常请求:{0}".format(e)) raise e # 抛出异常 else: try: return requests.post(self.url,params=self.data,headers=self.headers,cookies=self.cookie) except Exception as e: print("异常请求:{0}".format(e)) raise e#抛出异常

6.HttpRunner.py

#unittest加载用例执行生成报告 import unittest from test02 import DoCase import HTMLTestRunnerNew suite = unittest.TestSuite()#存放测试用例 loader = unittest.TestLoader()#加载器 suite.addTest(loader.loadTestsFromModule(DoCase))#加载测试模块 #上下文管理器 with open("report.html","wb") as file: runner = HTMLTestRunnerNew.HTMLTestRunner(stream=file, verbosity=2,title="标题",description="备注",tester="姓名") runner.run(suite)

7.report.html

8.报告模板下载

HTMLTestRunnerNew.py(下载地址:https://pan.baidu.com/s/1w9AZU9AkIpxCYuzTto0EQA?pwd=1234)

声明:本站所有文章        ,如无特殊说明或标注                  ,均为本站原创发布           。任何个人或组织       ,在未征得本站同意时     ,禁止复制           、盗用                 、采集    、发布本站内容到任何网站        、书籍等各类媒体平台               。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
seo工作是什么意思(SEO工作必备的SEO工具) win10激活密钥神key(win10神key激活秘钥推荐 附激活工具)