unittest接口的封装(也包含与接口测试)
unittest框架
(1)第一种执行所有的用例
unittest.main() #执行所有的用例
案例:
import unittest #导入unittest框架
import requests #导入reuquest库
class Cms_kj(unittest.TestCase): #创建一个类,继承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(self): #登录接口
url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" # 接口的url
data1 = {
"userAccount": "admin",
"loginPwd": 123456
} # 接口的请求参数
headers1 = {"Content-Type": "application/x-www-form-urlencoded"} # 接口请求类型
dx1 = self.s.post(url=url1, data=data1, headers=headers1)
print(dx1.text)
def test2(self): #查询用户接口
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2 = {
"startCreateDate": "", "endCreateDate": "",
"searchValue": "", "page": 1
}
headers2 = {"Content-Type": "application/x-www-form-urlencoded"}
dx2 = self.s.post(url=url2, data=data2, headers=headers2)
print(dx2.text)
def test3(self): #查询栏目接口
url3 = "http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3 = {"parentId": "", "categoryName": "", " page": 1}
headers3 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url3, data=data3, headers=headers3)
print(dx.text)
def test4(self): #查询咨询接口
url4 = "http://49.233.201.254:8080/cms/manage/findArticleByPage.do"
data4 = {"categoryId": "", "startCreateDate": "", " endCreateDate": "", " articleTitle": "",
"page": 1}
headers4 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url4, data=data4, headers=headers4)
print(dx.text)
def dy(self): #独有的接口,没有test开头
url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx=self.s.get(url=url)
print(dx.text)
if name == 'main':
unittest.main() #执行所有的用例

(2)执行单个用例或部分用例
import unittest #导入unittest框架
import requests #导入reuquest库
class Cms_kj(unittest.TestCase): #创建一个类,继承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(self): #登录接口
url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" # 接口的url
data1 = {
"userAccount": "admin",
"loginPwd": 123456
} # 接口的请求参数
headers1 = {"Content-Type": "application/x-www-form-urlencoded"} # 接口请求类型
dx1 = self.s.post(url=url1, data=data1, headers=headers1)
print(dx1.text)
def test2(self): #查询用户接口
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2 = {
"startCreateDate": "", "endCreateDate": "",
"searchValue": "", "page": 1
}
headers2 = {"Content-Type": "application/x-www-form-urlencoded"}
dx2 = self.s.post(url=url2, data=data2, headers=headers2)
print(dx2.text)
def test3(self): #查询栏目接口
url3 = "http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3 = {"parentId": "", "categoryName": "", " page": 1}
headers3 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url3, data=data3, headers=headers3)
print(dx.text)
def test4(self): #查询咨询接口
url4 = "http://49.233.201.254:8080/cms/manage/findArticleByPage.do"
data4 = {"categoryId": "", "startCreateDate": "", " endCreateDate": "", " articleTitle": "",
"page": 1}
headers4 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url4, data=data4, headers=headers4)
print(dx.text)
def dy(self): #独有的接口,没有test开头
url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx=self.s.get(url=url)
print(dx.text)
if name == 'main':
tj=unittest.TestSuite() #创建一个套件的对象
# tj.addTest(Cms_kj('test1')) #添加单个用例
tj.addTests([Cms_kj('test1'),Cms_kj('test4')]) #添加多个指定的用例
unittest.TextTestRunner().run(tj) #执行用例,执行套件testsuite中的用例

(3)执行一个路径下的用例
import unittest #导入unittest框架
import requests #导入reuquest库
import os
class Cms_kj(unittest.TestCase): #创建一个类,继承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(self): #登录接口
url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" # 接口的url
data1 = {
"userAccount": "admin",
"loginPwd": 123456
} # 接口的请求参数
headers1 = {"Content-Type": "application/x-www-form-urlencoded"} # 接口请求类型
dx1 = self.s.post(url=url1, data=data1, headers=headers1)
print(dx1.text)
def test2(self): #查询用户接口
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2 = {
"startCreateDate": "", "endCreateDate": "",
"searchValue": "", "page": 1
}
headers2 = {"Content-Type": "application/x-www-form-urlencoded"}
dx2 = self.s.post(url=url2, data=data2, headers=headers2)
print(dx2.text)
def test3(self): #查询栏目接口
url3 = "http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3 = {"parentId": "", "categoryName": "", " page": 1}
headers3 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url3, data=data3, headers=headers3)
print(dx.text)
def test4(self): #查询咨询接口
url4 = "http://49.233.201.254:8080/cms/manage/findArticleByPage.do"
data4 = {"categoryId": "", "startCreateDate": "", " endCreateDate": "", " articleTitle": "",
"page": 1}
headers4 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url4, data=data4, headers=headers4)
print(dx.text)
def dy(self): #独有的接口,没有test开头
url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx=self.s.get(url=url)
print(dx.text)
if name == 'main':
url=os.getcwd() #获取相对路径 #C:\Users\Administrator\PycharmProjects\untitled2\dcs
d=unittest.TestLoader().discover(start_dir=url,pattern="jk1*.py") #TestLoader()搜索一个路径下的用例
unittest.TextTestRunner().run(d) #TextTestRunner运行用例,运行搜索到的用例d

(4)第四种结合报告生成测试报告
一、自己导入报告模版

导入报告模版

案例:
import unittest #导入unittest框架
import requests #导入reuquest库
from dcs.HTMLTestRunnerNew import HTMLTestRunner
import time
import os
class Cms_kj(unittest.TestCase): #创建一个类,继承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(self): #登录接口
url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" # 接口的url
data1 = {
"userAccount": "admin",
"loginPwd": 123456
} # 接口的请求参数
headers1 = {"Content-Type": "application/x-www-form-urlencoded"} # 接口请求类型
dx1 = self.s.post(url=url1, data=data1, headers=headers1)
print(dx1.text)
def test2(self): #查询用户接口
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2 = {
"startCreateDate": "", "endCreateDate": "",
"searchValue": "", "page": 1
}
headers2 = {"Content-Type": "application/x-www-form-urlencoded"}
dx2 = self.s.post(url=url2, data=data2, headers=headers2)
print(dx2.text)
def test3(self): #查询栏目接口
url3 = "http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3 = {"parentId": "", "categoryName": "", " page": 1}
headers3 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url3, data=data3, headers=headers3)
print(dx.text)
def test4(self): #查询咨询接口
url4 = "http://49.233.201.254:8080/cms/manage/findArticleByPage.do"
data4 = {"categoryId": "", "startCreateDate": "", " endCreateDate": "", " articleTitle": "",
"page": 1}
headers4 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url4, data=data4, headers=headers4)
print(dx.text)
def dy(self): #独有的接口,没有test开头
url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx=self.s.get(url=url)
print(dx.text)
if name == 'main':
url=os.getcwd() #获取相对路径 #C:\Users\Administrator\PycharmProjects\untitled2\dcs
# url = r"C:\Users\Administrator\PycharmProjects\untitled2\dcs"
d=unittest.TestLoader().discover(start_dir=url,pattern="jk1*.py") #TestLoader()搜索一个路径下的用例
bgurl=os.getcwd()
bgurl=r"C:\Users\Administrator\PycharmProjects\untitled2\dcs"
new=time.strftime("%y-%m-%d %H-%M-%S")
file=bgurl+"/"+str(new)+"_jk.html"
print(file)
f=open(file,"bw")
HTMLTestRunner(stream=f,title="Cms 接口自动化测试报告",
description="接口用例执行情况").run(d)


二、下载unittestreport报告

导入库:

案例:
import unittest #导入unittest框架
import requests #导入reuquest库
from dcs.HTMLTestRunnerNew import HTMLTestRunner
from unittestreport import TestRunner
import time
import os
class Cms_kj(unittest.TestCase): #创建一个类,继承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(self): #登录接口
url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do" # 接口的url
data1 = {
"userAccount": "admin",
"loginPwd": 123456
} # 接口的请求参数
headers1 = {"Content-Type": "application/x-www-form-urlencoded"} # 接口请求类型
dx1 = self.s.post(url=url1, data=data1, headers=headers1)
print(dx1.text)
def test2(self): #查询用户接口
url2 = "http://49.233.201.254:8080/cms/manage/queryUserList.do"
data2 = {
"startCreateDate": "", "endCreateDate": "",
"searchValue": "", "page": 1
}
headers2 = {"Content-Type": "application/x-www-form-urlencoded"}
dx2 = self.s.post(url=url2, data=data2, headers=headers2)
print(dx2.text)
def test3(self): #查询栏目接口
url3 = "http://49.233.201.254:8080/cms/manage/findCategoryByPage.do"
data3 = {"parentId": "", "categoryName": "", " page": 1}
headers3 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url3, data=data3, headers=headers3)
print(dx.text)
def test4(self): #查询咨询接口
url4 = "http://49.233.201.254:8080/cms/manage/findArticleByPage.do"
data4 = {"categoryId": "", "startCreateDate": "", " endCreateDate": "", " articleTitle": "",
"page": 1}
headers4 = {"Content-Type": "application/x-www-form-urlencoded"}
dx = self.s.post(url=url4, data=data4, headers=headers4)
print(dx.text)
def dy(self): #独有的接口,没有test开头
url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
dx=self.s.get(url=url)
print(dx.text)
if name == 'main':
url=os.getcwd() #获取相对路径 #C:\Users\Administrator\PycharmProjects\untitled2\dcs
# url = r"C:\Users\Administrator\PycharmProjects\untitled2\dcs"
d=unittest.TestLoader().discover(start_dir=url,pattern="jk1*.py") #TestLoader()搜索一个路径下的用例
bgurl=os.getcwd()
bgurl=r"C:\Users\Administrator\PycharmProjects\untitled2\dcs"
new=time.strftime("%y-%m-%d %H-%M-%S")
file=bgurl+"/"+str(new)+"_jk.html"
print(file)
f=open(file,"bw")
TestRunner(d,
filename=file,
report_dir="./reports",
title='测试报告',
tester='测试员DCS77',
desc="CMD项目测试生成的报告",
templates=1
).run()


浙公网安备 33010602011771号