def run_tests(): # 指定批量执行的模块 test_module = './TestCase' discover = unittest.defaultTestLoader.discover(test_module, pattern="test_*.py") dir_path = './Report/' NowTime = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time())) report_path = dir_path + 'report' + NowTime + '.html' with open(report_path, 'wb') as f: runner = HTMLTestRunner(stream=f, verbosity=2, title='自动化测试报告', description='用例执行详细信息') runner.run(discover) f.close()
def run(self): for filename in os.listdir(self.cases): if filename == "report": break else: os.mkdir(self.cases + '/report') now = time.strftime("%Y-%m-%d_%H_%M_%S") fp = open("./report/" + now + "result.html", 'wb') tests = unittest.defaultTestLoader.discover(self.cases, pattern='test*.py', top_level_dir=None) print(tests) runner = HTMLTestRunner(stream=fp, title=self.title, description=self.des) runner.run(tests) fp.close()
text = driver.find_element_by_xpath('//*[@resource-id="com.android.calculator2:id/result"]').text sleep(1) assert_equal(text, '6') @take_screen_shot def test_case_05_div(self): sleep(1) driver.find_element_by_id('com.android.calculator2:id/digit_9').click() sleep(1) driver.find_element_by_id('com.android.calculator2:id/op_div').click() sleep(1) driver.find_element_by_id('com.android.calculator2:id/digit_3').click() sleep(1) driver.find_element_by_id('com.android.calculator2:id/eq').click() sleep(1) text = driver.find_element_by_xpath('//*[@resource-id="com.android.calculator2:id/result"]').text sleep(1) assert_equal(text, '3') if __name__ == '__main__': os.system('adb shell killall atx-agent') # os.system('del *.png *.html') report_dir = r'CalculatorTest.html' re_open = open(report_dir, 'wb') suite = unittest.TestLoader().loadTestsFromTestCase(CalTestCase) runner = HTMLTestRunner(stream=re_open, title=u'Automated testing of android environment by ZL', description=u'The test report as below.') runner.run(suite)
dig_alert.accept() time.sleep(2) print("客户管理——黑名单——删除黑名单成功") print("客户管理——黑名单测试通过") def test_tearDown(self): #关闭浏览器 self.driver.quit() if __name__ == "__main__": test_suite = unittest.TestSuite() ''' 引用HTMLTestRunner生成测试报告 python3和python的HTMLTestRunner有不同,需要修改 且运行时需要在if语句中,编辑器默认只运行if以上内容 ''' #将测试用例加入到测试容器中——class下def方法 test_suite.addTest(Source("test_black_user")) # 定义个报告存放路径,支持相对路径 filename = 'C:\\Users\\22648\\Desktop\\test\\BlackUser.html' #打开一个文件,将result写入此file中 fp = open(filename, 'wb') # 定义测试报告,打开方式、标题、描述 runner = HTMLTestRunner(stream=fp, title='黑名单测试报告', description='用例执行情况:') # 运行测试用例 runner.run(test_suite) # 写完之后必须将fp关闭,否则报告是空的 fp.close()
from testDemo import IntegerArimeticTest from HTMLTestRunner import * def add(a,b): return a+b def minus(a,b): return a-b def multi(a,b): return a*b def divide(a,b): return a/b if __name__ == '__main__': suit=unittest.TestSuite() tests=[IntegerArimeticTest("testAdd"),IntegerArimeticTest("testminus"),IntegerArimeticTest("testmulti"),IntegerArimeticTest("testdivide")] suit.addTests(tests) runner=unittest.TextTestRunner(verbosity=2) runner.run(suit) with open('HtmlReport.html', 'w') as f: runner=HTMLTestRunner(stream=f,title='MathFunc Test Report',description='generated by HTMLTestRunner.',verbosity=2) runner.run(suit)
from HTMLTestRunner import * import time import unittest # 指定测试用例为当前文件夹下的 testcases 目录 test_dir = '../interfaceTest' discover = unittest.defaultTestLoader.discover(test_dir, pattern='testcase.py') if __name__ == "__main__": now = time.strftime("%Y-%m-%d-%H_%M_%S") filename = now + '_result.html' with open('reports/' + filename, encoding='utf-8', mode='w') as fp: runner = HTMLTestRunner(stream=fp, title='自助售货机云平台运维开发-测试报告', description='详细执行结果如下: ') runner.run(discover)
import HTMLTestRunner class LoginTest(unittest.TestCase): def setUp(self): self._driver = webdriver.Firefox() self.base_url = "https://baidu.com" print('test start') def test_case(self): driver = self._driver driver.get(self.base_url) driver.find_element_by_id('kw').send_keys('baidu') driver.find_element_by_id('su').click() def tearDown(self): self._driver.quit() print('test end') if __name__ == '__main__': test = unittest.TestSuite() test.addTest(LoginTest('test_case')) fp = open('C:\\Users\\admin\\Desktop\\report.html', 'wb') runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:') runner.run(test) fp.close()
driver = DriverManage.initDriver("chrome") br = BrowserOperate(driver) wb = webObject(driver) cn = commonOperate(driver) ck = checkAssert(driver, cn) def setUp(self): base_url = "http://www.baidu.com" BrowserOperate(self.driver).openUrl(base_url) def test_op(self): commonOperate(self.driver).sendkey("id", "kw", "测试") self.cn.click("id", "su") #self.ck.checkText("class","toindex","text","百度首页") def tearDown(self): self.driver.close() self.driver.quit() if __name__ == "__main__": unittest.main() now = time.strftime("%Y-%m-%d %H_%M_%S") filename = './report/' + now + '_result.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='自动化测试UI报告', description='Implementation Example with:') runner.run() fp.close()
def test_notequal(self): print("不相等1") #self.assertNotEqual(1,2,"判断1!=2") self.assertTrue(1 == 1, "verify") if __name__ == '__main__': # 1、执行当前文件所有的unittest测试用例 # unittest.main() #2、执行指定的测试用例,添加到将要执行的测试套件里 # suite=unittest.TestSuite() # suite.addTest(Search("test_equal")) # unittest.TextTestRunner().run(suite) # 3、执行某个测试类 将测试类添加到测试套件里 # suite1=unittest.TestLoader().loadTestsFromTestCase(Search) # suite3=unittest.TestSuite([suite1]) # unittest.TextTestRunner(verbosity=2).run(suite3) report_title = '测试用例执行报告' desc = '用于展示修改样式后的HTMLTestRunner' report_file = 'result.html' suite1 = unittest.TestLoader().loadTestsFromTestCase(Search) suite3 = unittest.TestSuite([suite1]) # unittest.TextTestRunner(verbosity=2).run(suite3) with open(report_file, 'wb') as report: runner = HTMLTestRunner(stream=report, title=report_title, description=desc) runner.run(suite3)
import os import sys sys.path.append(".") import unittest from HTMLTestRunner import * from unittestpackage.test_class1 import TestClass1 from unittestpackage.test_class2 import TestClass2 # Get all tests from TestClass1 and TestClass2 tc1 = unittest.TestLoader().loadTestsFromTestCase(TestClass1) tc2 = unittest.TestLoader().loadTestsFromTestCase(TestClass2) # get the directory path to output report file dir = os.getcwd() # Create a test suite combining TestClass1 and TestClass2 smokeTests = unittest.TestSuite([tc1, tc2]) # open the report file outfile = open(dir + "/Report.html", "w", encoding='utf-8') # configure HTMLTestRunner options runner = HTMLTestRunner(stream=outfile, title='Test Report', description='Acceptance Tests') # run the suite using HTMLTestRunner runner.run(smokeTests) outfile.close()
# 第一步,创建一个TestSuite实例 myLogin = unittest.TestSuite() # 第二步,增加测试用例 '''第一种方法:直接用addtest+方法添加单个。 传入参数:类名称('用例名称') ''' myLogin.addTest(LoginTest001('testcase2')) '''第二种方法:直接用addtests方法添加多个测试用例,而且根据添加是顺序来执行''' # testcases.addTests([LoginTest001('testcase2'),LoginTest001('testcase1')]) '''第三种方法:addtests+TestLoad添加测试类,而不是单个的测试用例 loadTestsFromTestCase:参数(直接传入类名) loadTestsFromName:参数(传入文件模块名.类名) loadTestsFromNames:参数:(传入文件模块名.类名的列表) ''' # 例如: # testcases.addTests(unittest.TestLoader().loadTestsFromTestCase(LoginTest001)) # testcases.addTests(unittest.TestLoader().loadTestsFromName('login01.LoginTest001')) # testcases.addTests(unittest.TestLoader().loadTestsFromNames(['login01.LoginTest01','login01.LoginTest001'])) # 第三步:HTMLTestRunner来运行所有测试用例 now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) print(now) f = open('./test.html', 'wb') runner = HTMLTestRunner(stream=fp, title='中文1', description='中文2') runner.run(myLogin) f.close()
# coding=utf-8 from testcase import * from unittest import TestSuite, makeSuite # 到入unittest框架中的TestSuite, makeSuite from HTMLTestRunner import * # 需要将HTMLTestRunner文件放到C: Python27\Lib目录下 T = TestSuite() # 将测试用例集TestSuite()赋给对象T T.addTest(makeSuite(Login)) # Login是在case中封装的类名 # T.addTest(Login('test1')) # T.addTest(Login('test2')) # T.addTest(Login('test3')) # T.addTest(Login('test4')) # file()是生成文件函数,./代表生成文件存放到当前路径,w代表写的权限,b代表覆盖权限 fp = file('./result.html', 'wb') fb = HTMLTestRunner(fp, title=u'自动化测试报告', description=u'测试用例结果') fb.run(T) fp.close()
from JLDBackstage import JBlogin_test001 # testunit = unittest.TestSuite() # testunit.addTest(JBlogin_test001.jbTestCases01("test_log_in_01")) # testunit.addTest(JBlogin_test001.jbTestCases01("test_log_in_02")) # testunit.addTest(JBlogin_test001.jbTestCases01("test_log_in_04")) # testunit.addTest(JBlogin_test001.jbTestCases01("test_log_in_03")) # testunit.addTest(JBlogin_test001.jbTestCases01("test_log_in_04")) testunit=unittest.defaultTestLoader.discover("../JLDBackstage",pattern="JBlogin_test*.py") try: filePath = u'd:\\NewPython\\Report.html' # 确定生成报告的路径 fp = open(filePath, 'wb') runner = HTMLTestRunner(stream=fp, title=u'自动化测试报告', description='JLD登陆功能用例测试结果') # 运行测试用例 runner.run((testunit)) fp.close() print("") print("----------All Done!-------") except: print("Error!!!!!!!") import smtplib from email.mime.text import MIMEText from email.header import Header from email.utils import formataddr f=open(u'd:\\NewPython\\Report.html',"rb") mail_body=f.read() f.close()