当前位置: 首页 > 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.hskmm.com/?act=detail&tid=38259

相关文章:

  • 2025 年保温涂料厂家最新推荐排行榜:聚焦技术专利与管理体系认证的优质品牌耐高温/防火耐热/防腐/纳米介孔微珠中空粒子保温涂料公司推荐
  • 2025年云南独立成团游公司权威推荐榜单:云南旅游团/云南私享之旅/云南专属行程游源头公司精选
  • 2025 年气凝胶生产厂家最新推荐排行榜:含气凝胶毡 / 粉 / 隔热板 / 保温罩 / 陶瓷板品牌,优质厂家推荐
  • 102302143郑泽雄第一次作业
  • 作业4
  • 2025年5.5KW工业吸尘器厂家权威推荐榜单:380V防爆吸尘器/7.5KW工业吸尘器/水浴式吸尘器源头厂家精选
  • 2025 年兰州凯文中学推荐:兰州凯文中学,二十载深耕民办教育 双师赋能全维育人 以低进高出成效书写成长答卷
  • OpenEuler 22.03 手动升级 OpenSSH 至 10.2p1 完整方案
  • 配置GOPRIVATE引用私有仓库
  • 【C++】函数参数传递
  • 2025年3d全息投影生产厂家权威推荐榜单:全息投影展厅/全息投影沙盘/全息投影源头厂家精选
  • 用AI“抄底”双十一
  • 基于数据库实现分布式锁
  • 2025.10.24第一节课内容
  • 2025 年国内磁吸盘源头厂家最新推荐排行榜:聚焦电永 / 焊接电 / 电控永 / 起重电 / 液压潜水电等品类实力企业
  • 监督学习、无监督学习、半监督学习、强化学习、自监督学习
  • 2025 年退磁器生产厂家最新推荐榜:技术创新、行业适配与服务保障全景对比及权威测评结果强力退磁器/手提退磁器/小型退磁器公司推荐
  • word批量转pdf
  • 【IEEE出版 | 高届数会议 | 上届已于会后3个多月完成见刊检索】2025第九届控制工程与国际论坛(IWCEAA 2025)
  • SQLServer截取字符串、字符串长度、特殊字符在字符串的下标索引
  • 题解:P8134 [ICPC 2020 WF] Opportunity Cost
  • 解决Qt 不能debug问题
  • 2025年项目总延期?这30款项目进度管理软件让我提前交付率85%!
  • 2025 年最新护眼灯生产厂家推荐榜:含全光谱智能照明标杆企业及高产能品牌优选指南自然光护眼/全光谱护眼/儿童护眼吸顶灯公司推荐
  • Java多线程梳理
  • QT的事件循环(一)
  • 【开题答辩全过程】以 “辛巴克餐饮”小程序为例,具备答辩的问题和答案
  • QT中的反射机制
  • Exadata数据库性能异常,备份进程卡住
  • [linux] 文件夹可写权限的关闭和打开