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()
