unittset框架
一.调用所有接口
unittest.main()
案例:
import unittest import requests from time import * 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"} jk1=self.s.request("post",url=url1,data=data1,headers=h1) print(jk1.text) def test2_yh(self): url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do" data2={ 'startCreateDat':'', 'endCreateDate':'', 'searchValue':'', 'page':'1' } h2={"Content-Type":"application/x-www-form-urlencoded"} jk2=self.s.request("post",url=url2,data=data2,headers=h2) print(jk2.text) def test3(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"} jk3 = self.s.request("post", url=url3, data=data3, headers=h3) print(jk3.text) if __name__ == '__main__': unittest.main()
二.运行部分用例接口
unittest.TestSuite()套件
addTest 添加到套件中
添加环境变量
案例
import unittest import requests from time import * class Cms(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.s=requests.Session() @classmethod def tearDownClass(cls) -> None: pass def setUp(self) -> None: url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" data1 = {'userAccount': 'admin', 'loginPwd': '123456'} h1 = {"Content-Type": "application/x-www-form-urlencoded"} jk1 = self.s.request("post", url=url1, data=data1, headers=h1) print(jk1.text) def tearDown(self) -> None: pass # def test1_dl(self): # def test2_yh(self): url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do" data2={ 'startCreateDat':'', 'endCreateDate':'', 'searchValue':'', 'page':'1' } h2={"Content-Type":"application/x-www-form-urlencoded"} jk2=self.s.request("post",url=url2,data=data2,headers=h2) print(jk2.text) def test3(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"} jk3 = self.s.request("post", url=url3, data=data3, headers=h3) print(jk3.text) if __name__ == '__main__': # unittest.main() tj=unittest.TestSuite() # tj.addTest(Cms("test2_yh")) tj.addTests([Cms("test2_yh"),Cms("test3")]) unittest.TextTestRunner().run(tj)
第三,执行一个路径下的用例
unittest.TestLoader()
案例:
import unittest import requests from time import * import os class Cms(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.s=requests.Session() @classmethod def tearDownClass(cls) -> None: pass def setUp(self) -> None: url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" data1 = {'userAccount': 'admin', 'loginPwd': '123456'} h1 = {"Content-Type": "application/x-www-form-urlencoded"} jk1 = self.s.request("post", url=url1, data=data1, headers=h1) print(jk1.text) def tearDown(self) -> None: pass # def test1_dl(self): # def test2_yh(self): url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do" data2={ 'startCreateDat':'', 'endCreateDate':'', 'searchValue':'', 'page':'1' } h2={"Content-Type":"application/x-www-form-urlencoded"} jk2=self.s.request("post",url=url2,data=data2,headers=h2) print(jk2.text) def test3(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"} jk3 = self.s.request("post", url=url3, data=data3, headers=h3) print(jk3.text) if __name__ == '__main__': # unittest.main() # tj=unittest.TestSuite() # # tj.addTest(Cms("test2_yh")) # tj.addTests([Cms("test2_yh"),Cms("test3")]) # unittest.TextTestRunner().run(tj) path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled12\dd" d=unittest.TestLoader().discover(start_dir=path,pattern="kj*.py") unittest.TextTestRunner().run(d)
第四生成报告
1.准备报告模板
2.导入模板
import unittest import requests from dd.HTMLTestRunner3_New import HTMLTestRunner from time import * import os class Cms(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.s=requests.Session() @classmethod def tearDownClass(cls) -> None: pass def setUp(self) -> None: url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" data1 = {'userAccount': 'admin', 'loginPwd': '123456'} h1 = {"Content-Type": "application/x-www-form-urlencoded"} jk1 = self.s.request("post", url=url1, data=data1, headers=h1) print(jk1.text) def tearDown(self) -> None: pass # def test1_dl(self): # def test2_yh(self): url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do" data2={ 'startCreateDat':'', 'endCreateDate':'', 'searchValue':'', 'page':'1' } h2={"Content-Type":"application/x-www-form-urlencoded"} jk2=self.s.request("post",url=url2,data=data2,headers=h2) print(jk2.text) def test3(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"} jk3 = self.s.request("post", url=url3, data=data3, headers=h3) print(jk3.text) if __name__ == '__main__': # unittest.main() # tj=unittest.TestSuite() # # tj.addTest(Cms("test2_yh")) # tj.addTests([Cms("test2_yh"),Cms("test3")]) # unittest.TextTestRunner().run(tj) # path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled12\dd" # d=unittest.TestLoader().discover(start_dir=path,pattern="kj*.py") # unittest.TextTestRunner().run(d) path=r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled12\dd" bgpath = r"C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled12\dd" d=unittest.TestLoader().discover(start_dir=path,pattern="kj*.py") new=strftime("%y-%m-%d %H-%M-%S") file=bgpath+"/"+str(new)+" __jk.html" f=open(file,"bw") HTMLTestRunner( stream=f,title="接口自动化测试报告",description="接口用例执行情况",tester="dcs" ).run(d)