当前位置: 首页 > news >正文

python+request+unittest自动化测试

python+request+unittest自动化测试
案例:第一种方法,执行全部的用例
import unittest
import requests
class Cms(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.s=requests.Session()
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test1_dl(self):
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1 = {'userAccount': 'admin', 'loginPwd': 123456}
h1={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx=self.s.post(url=url1,data=data1,headers=h1)
print(dx.text) #查看接口的响应体{"code":"200","msg":"
def testA_yhcx(self):
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={'startCreateDate':'','endCreateDate':'','searchValue':'','page':1}
h2={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx2=self.s.post(url=url2,data=data2,headers=h2)
print(dx2.text)
def testa_lm(self):
url3="http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3={"parentId":"","categoryName":"","page":1}
h3={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx3=self.s.post(url=url3,data=data3,headers=h3)
print(dx3.text)
def dy(self):
url4 = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx4=self.s.get(url=url4)
print(dx4.text)
if name == 'main':
unittest.main()

案例2:执行部分用例或单个用例
import unittest
import requests
class Cms(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.s=requests.Session()
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test1_dl(self):
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1 = {'userAccount': 'admin', 'loginPwd': 123456}
h1={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx=self.s.post(url=url1,data=data1,headers=h1)
print(dx.text) #查看接口的响应体{"code":"200","msg":"
def testA_yhcx(self):
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={'startCreateDate':'','endCreateDate':'','searchValue':'','page':1}
h2={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx2=self.s.post(url=url2,data=data2,headers=h2)
print(dx2.text)
def testa_lm(self):
url3="http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3={"parentId":"","categoryName":"","page":1}
h3={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx3=self.s.post(url=url3,data=data3,headers=h3)
print(dx3.text)
def dy(self):
url4 = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx4=self.s.get(url=url4)
print(dx4.text)
if name == 'main':
tj=unittest.TestSuite()

tj.addTest(Cms("test1_dl"))

tj.addTests([Cms("test1_dl"),Cms("testa_lm")])
unittest.TextTestRunner().run(tj)

案例3:执行一个路径下的用例
import unittest
import requests
class Cms(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.s=requests.Session()
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test1_dl(self):
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1 = {'userAccount': 'admin', 'loginPwd': 123456}
h1={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx=self.s.post(url=url1,data=data1,headers=h1)
print(dx.text) #查看接口的响应体{"code":"200","msg":"
def testA_yhcx(self):
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={'startCreateDate':'','endCreateDate':'','searchValue':'','page':1}
h2={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx2=self.s.post(url=url2,data=data2,headers=h2)
print(dx2.text)
def testa_lm(self):
url3="http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3={"parentId":"","categoryName":"","page":1}
h3={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx3=self.s.post(url=url3,data=data3,headers=h3)
print(dx3.text)
def dy(self):
url4 = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx4=self.s.get(url=url4)
print(dx4.text)
if name == 'main':
path=r'C:\Users\Administrator\PycharmProjects\untitled\jk'
d=unittest.TestLoader().discover(start_dir=path,pattern="jk2*.py")
unittest.TextTestRunner().run(d)

案例4:执行一个路径下的用例,并生成测试报告
import unittest
import requests
import time
from jk.HTMLTestRunnerNew import HTMLTestRunner
class Cms(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.s=requests.Session()
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test1_dl(self):
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1 = {'userAccount': 'admin', 'loginPwd': 123456}
h1={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx=self.s.post(url=url1,data=data1,headers=h1)
print(dx.text) #查看接口的响应体{"code":"200","msg":"
def testA_yhcx(self):
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={'startCreateDate':'','endCreateDate':'','searchValue':'','page':1}
h2={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx2=self.s.post(url=url2,data=data2,headers=h2)
print(dx2.text)
def testa_lm(self):
url3="http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3={"parentId":"","categoryName":"","page":1}
h3={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx3=self.s.post(url=url3,data=data3,headers=h3)
print(dx3.text)
def dy(self):
url4 = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx4=self.s.get(url=url4)
print(dx4.text)
if name == 'main':
path=r'C:\Users\Administrator\PycharmProjects\untitled\jk'
d=unittest.TestLoader().discover(start_dir=path,pattern="jk2*.py")
bg_path=r'C:\Users\Administrator\PycharmProjects\untitled\jk'
new=time.strftime("%y-%m-%d %H-%M-%S")
file=bg_path+"/"+str(new)+"api_.html"
f=open(file,"wb"
)
HTMLTestRunner(
stream=f,title="接口自动化测试报告",description="接口用例执行情况",
tester="dcs"
).run(d)

优化报告:
pip下载 pip install unittestreport
from unittestreport import TestRunner
案例:
import unittest
import requests
import time
from unittestreport import TestRunner
class Cms(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.s=requests.Session()
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test1_dl(self):
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1 = {'userAccount': 'admin', 'loginPwd': 123456}
h1={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx=self.s.post(url=url1,data=data1,headers=h1)
print(dx.text) #查看接口的响应体{"code":"200","msg":"
def testA_yhcx(self):
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2={'startCreateDate':'','endCreateDate':'','searchValue':'','page':1}
h2={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx2=self.s.post(url=url2,data=data2,headers=h2)
print(dx2.text)
def testa_lm(self):
url3="http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3={"parentId":"","categoryName":"","page":1}
h3={'content-type':'application/x-www-form-urlencoded; charset=UTF-8'}
dx3=self.s.post(url=url3,data=data3,headers=h3)
print(dx3.text)
def dy(self):
url4 = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx4=self.s.get(url=url4)
print(dx4.text)
if name == 'main':
path=r'C:\Users\Administrator\PycharmProjects\untitled\jk'
d=unittest.TestLoader().discover(start_dir=path,pattern="jk2*.py")
bg_path=r'C:\Users\Administrator\PycharmProjects\untitled\jk'
new=time.strftime("%y-%m-%d %H-%M-%S")
file=bg_path+"/"+str(new)+"api_.html"
f=open(file,"wb"
)
TestRunner(d,
filename=file,title="接口自动化测试报告",desc="接口用例执行情况",
tester="dcs",templates=1).run()

http://www.gsyq.cn/news/29582.html

相关文章:

  • 2025 年保温涂料厂家最新推荐排行榜:聚焦技术专利与管理体系认证的优质品牌耐高温/防火耐热/防腐/纳米介孔微珠中空粒子保温涂料公司推荐
  • 2025年云南独立成团游公司权威推荐榜单:云南旅游团/云南私享之旅/云南专属行程游源头公司精选
  • 2025年5.5KW工业吸尘器厂家权威推荐榜单:380V防爆吸尘器/7.5KW工业吸尘器/水浴式吸尘器源头厂家精选
  • OpenEuler 22.03 手动升级 OpenSSH 至 10.2p1 完整方案
  • 配置GOPRIVATE引用私有仓库
  • 2025 年最新推荐辊涂机源头厂家推荐榜单:UV 漆 / 玻璃 / 铝板 / 木门 / PVC 地板辊涂机优质企业全解析
  • 2025.10.24第一节课内容
  • 【IEEE出版 | 高届数会议 | 上届已于会后3个多月完成见刊检索】2025第九届控制工程与国际论坛(IWCEAA 2025)
  • SQLServer截取字符串、字符串长度、特殊字符在字符串的下标索引
  • QT的事件循环(一)
  • 完整教程:构建并运行最小 Linux 内核
  • word批量转pdf
  • 解决Qt 不能debug问题
  • Exadata数据库性能异常,备份进程卡住
  • 做本地门户网站 10 年,我靠微擎摆脱了 “客户需求五花八门” 的噩梦
  • 熟知大模型中mcp概念 --by zk
  • 2025年一体化雨水提升泵站厂家权威推荐榜单:污水提升泵站/一体化污水泵站/一体化雨水泵站源头厂家精选
  • 【开题答辩全过程】以 “辛巴克餐饮”小程序为例,具备答辩的问题和答案
  • 读书笔记:解锁数据库查询新姿势:函数索引让你的搜索又快又准
  • 2025年教室护眼灯厂家权威推荐榜单:led教室灯/幼儿园教室灯/教室照明灯具源头厂家精选
  • 在MCUXpresso IDE中建立使用静态库的工程 - 指南
  • Ollama大模型推理场景下3090和4090性能实测
  • 2025 年最新推荐河道护栏源头厂家口碑榜,聚焦全流程服务与高性价比之选铝合金/绳索/不锈钢河道护栏公司推荐
  • 2025 年管道修补器源头厂家最新推荐排行榜:揭秘行业内具备全流程管控能力的靠谱厂商及优质产品选型指南加长/铸铁/弯头/卡箍式管道修补器公司推荐
  • 信号(Signal)、信号量(Semaphore)
  • 详细介绍:Go 和云原生 的现状和发展前景
  • Socket 编程 TCP(准备阶段) - 指南
  • 2025修护/二硫化硒去屑/香氛/控油蓬松/洗发水品牌推荐榜:MASIL 玛丝兰(西安悦己容)五星领衔,这些专研洗护品牌值得关注
  • vue3+vite学习日记之配置全新项目
  • YouTube数据抓取漏洞利用与概念验证解析