import unittest #导入单元测试框架 import requests #导入接口库 import time # #时间戳,导入time模块 from api.HTMLTestRunner3 import HTMLTestRunner#导入生成报告类 class Cms_api(unittest.TestCase): #定义一个类继承单元测试框架中的testcase类 @classmethod def setUpClass(cls): # cls的类的方法 cls.session=requests.Session()#session是一个全局的变量作用是保持上下接口的会话和关联 @classmethod def tearDownClass(cls): print ('类的结束') def setUp(self): print ('方法的开始') def test01(self): #定义一个用例 用例名称要用test '''登录接口''' url ='http://129.226.122.199:8080/cms/manage/loginJump.do' data={'userAccount': 'admin','loginPwd': 123456} header={'Content-Type': 'application/x-www-form-urlencoded'} # rep =requests.post(url=url,data=data,json=header) rep =self.session.post(url=url,data=data,json=header) print (rep.text) #打印登录接口的结果 def test02(self):#定义一个用例用户管理接口 urlist_url='http://129.226.122.199/:8080/cms/manage/queryUserList.do' urlist_data={'startCreateDate':'', 'endCreateDate':'' ,'searchValue':'', 'page': 1} urlist_he={'Content-Type': 'application/x-www-form-urlencoded'} ur_rep=requests.post(url=urlist_url,data=urlist_data,json=urlist_he) ur_rep=self.session.post(url=urlist_url,data=urlist_data,json=urlist_he) print (ur_rep.text) #打印用户管理接口的结果 def tearDown(self): print ('方法的结束') def urits(): #创建一个普通函数 作用是容器存放用例 us =unittest.TestSuite() #容器 # us.addTest(Cms_api('test01')) #单个执行用例 us.addTests([Cms_api('test01'),Cms_api('test02')])#执行多条 return us if __name__ == '__main__': #第一种运行方法:运行所有的用例 #unittest.main() # # #第二种运行方法:可以选择运行用例 # runner = unittest.TextTestRunner() # runner.run(urits()) # # #第三种运行方法:自动搜索用例 # # 在规定的目录下去搜索以less开头和.py结尾的模块中的用例 # start_dir = r'C:\Users\Administrator\PycharmProjects\untitled\ui' # discover = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='lesson2*.py') #*通配符 # print (discover) # runner = unittest.TextTestRunner() # runner.run(discover) # #第四种运行方法:自动化搜索+生成测试报告 start_dir = r'C:\Users\Administrator\PycharmProjects\untitled1\api' discover = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='test*.py')# 中间* 是通配符 # 1.定义生成的测试报告的名称 #path= r'C:\Users\Administrator\PycharmProjects\untitled1\api' ##报告生成在我们当前路径,copy本地路径 now = time.strftime('%Y-%m-%d-%H-%M-%S') filename = r'C:\Users\Administrator\PycharmProjects\untitled1\api'+ "\\" + str(now) + 'api_report.html' ###.html'表示 #print(filename) f = open(filename, 'bw') # 以二进制的方式在...ui.html文件中写入报告模板和测试结果 ##w 是写,b 是表示二进制方式写入, runner = HTMLTestRunner(stream=f, title='接口自动化测试报告', description='用例执行情况如下:', ) runner.run(discover) f.close() # 释放资源、关闭文件
自动化测试报告