def run_and_report(suite=all_tests, verbosity=2, report_filename='report.html', title='Sage Notebook Tests', description='Selenium test results', open_viewer=True, **kwargs): """ Runs a test suite and generates a HTML report with the outcome (pass, fail, or error) and output, including any tracebacks, for each test, plus overall statistics. For the SageNB test suite, this assumes a Selenium server or Grid hub is running with the options given in :mod:`sagenb.testing.notebook_test_case` or set by :func:`setup_tests`. INPUT: - ``suite`` - a TestSuite instance (default: all_tests); the test suite to run - ``verbosity`` - an integer (default: 2); how verbosely to report instantaneous test results - ``report_filename`` - a string (default: 'report.html'); the report's filename - ``title`` - a string (default: 'Sage Notebook Tests'); the report's title - ``description`` - a string (default: 'Selenium test results'); a description included near the beginning of the report - ``open_viewer`` - a boolean (default: True); whether to open the report in a web browser - ``kwargs`` - a dictionary; extra keyword arguments passed to the test runner's constructor EXAMPLES:: sage: import sagenb.testing.run_tests as rt # not tested sage: rt.run_and_report() # not tested sage: rt.run_and_report(report_filename='test1.html') # not tested sage: rt.run_and_report(rt.test_accounts.suite) # not tested """ from HTMLTestRunner import HTMLTestRunner report_fd = open(report_filename, 'w') runner = HTMLTestRunner(verbosity = verbosity, stream = report_fd, title = title, description = description, **kwargs) runner.run(suite) if open_viewer: import os, subprocess subprocess.Popen(browser() + ' ' + os.path.abspath(report_filename), shell=True)
def run(self): runner = HTMLTestRunner( stream=fp, title=self.base_url+u'首页非200测试', description=u'用例执行情况:' ) test_all.BASE_URL = self.base_url suite.addTest(test_all("test_all_href")) suite.addTest(test_all("test_all_css")) suite.addTest(test_all("test_all_img")) suite.addTest(test_all("test_all_js")) runner.run(suite)
def start(self): # Set UP of Automation selenium_wrapper.wrapper().StartSelenium() selenium_wrapper().wrapper().OpenAppplication() suite = unittest.defaultTestLoader.loadTestsFromTestCase(test_AddComp) suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(test_EditComp)) suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(test_ViewReport)) report_name = self.get_report_name() print report_name f=open(str(report_name),"wb+") runner = HTMLTestRunner( stream=f, title='CMA Report', description='This demonstrates the execution result' ) result = runner.run(suite) # Tear Down of Automation selenium_wrapper.wrapper().StopSelenium() if not result.wasSuccessful(): sys.exit(1)
def run(self, testsuite): """Run the testsuite, saving report to fname.""" self.fname = join(abspath('.'), 'testResults.html') with file(self.fname, 'wb') as fp: self.stream = fp self.title = 'Unit Tests' self.description = 'Summary of Test Run.' results = Runner.run(self, testsuite) self.print_summary(results) return results
import unittest from testcity import testWeatherApi from HTMLTestRunner import HTMLTestRunner testunit = unittest.TestSuite() testunit.addTest(testWeatherApi("testWeatherApi")) fp = open('./result.html', 'wb') runner = HTMLTestRunner(stream=fp, title="API测试报告", description="测试执行情况") runner.run(testunit) fp.close()
from HTMLTestRunner import HTMLTestRunner import time import unittest if __name__ == '__main__': #测试用例目录 test_dir = r"C:\Users\Administrator\Desktop\kedalo\Testing\APP\cases" #加载测试用例 discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py") # 生成测试报告 now_time = time.strftime("%Y-%m-%d_%H_%M_%S") path = r"C:\Users\Administrator\Desktop\kedalo\Testing\APP\report" + now_time + ".html" with open(path, 'wb+') as f: runner = HTMLTestRunner(stream=f, title='APPInterface Test Report', description='generated by HTMLTestRunner.', verbosity=2) # 执行测试集 runner.run(discover)
with open(file_name,'wb') as f: 6. 实例化HTMLTestRunner对象: runner = HTMLTestRunner(stream=f,[title],[description]) 参数说明: stream:文件流,打开写入报告的名称及写入编码格式) title:[可选参数],为报告标题,如XXX自动化测试报告 description:[可选参数],为报告描述信息;比如操作系统、浏览器等版本 7. 执行:runner.run(suite) """ import unittest from HTMLTestRunner import HTMLTestRunner suite = unittest.TestLoader().discover('.', pattern='test*.py') # #1. 方法1:使用unittest运行器运行测试套件 # runner = unittest.TextTestRunner() # runner.run(suite) # 2. 方法2:使用HTML_TestRunner去生成测试报告 #(1) 生成测试报告文件 test_report = 'test_report.html' #(2) 打开上面的文件并将运行的结果写到文件中 with open(test_report, 'wb') as f: # ① 创建一个HTMLTestRunner的,运行器 runner = HTMLTestRunner(f, title='测试报告', description='当前版本:v1.0') # ② 调用run方法执行测试套件 runner.run(suite)
from HTMLTestRunner import HTMLTestRunner import unittest dicover = unittest.defaultTestLoader.discover('../test_case', 'test*py') runner = unittest.TextTestRunner() with open('report.html', 'wb') as f: runner = HTMLTestRunner(stream=f, title='crm自动化测试', description='运行环境 win10 chrome') runner.run(dicover)
#前台登录 #suite.addTest(test_login.TestLogin("test_login")) #发布案件 #suite.addTest(test_publish_case.PublishCase("test_publish_succeed_1")) #后台审核案件通过 #suite.addTest(test_back_operation.BackOperation("test_back_review")) #律师申请接案 #suite.addTest(test_lawyer_intake.LawyerIntake("test_lawyer_intake_case")) #用户指定律师 #suite.addTest(test_user_appoint_lawyer.UserAppoint("test_user_appoint_lawyer")) #律师完善信息 #suite.addTest(test_perfect_information.PerfectInformat("test_perfect_information")) #支付代理费 #suite.addTest(test_perfect_information.PerfectInformat("test_lawyer_pay_agent_free")) #后台审核代理费 suite.addTest(test_back_operation.BackOperation("test_back_agent_review")) suites.append(suite) return suites if __name__ == '__main__': alltestcase = all_test() now_time=time.strftime('%Y-%m-%d %H-%M-%S',time.localtime()) filename = './report/'+now_time+'result.html' fp = open(filename,'wb') runner = HTMLTestRunner(stream=fp, title = u'测试报告', description= u'用例执行情况:') runner = unittest.TextTestRunner() runner.run(alltestcase[0]) fp.close()
print('开始了') self.driver=webdriver.Firefox() self.driver.implicitly_wait(20) def test_po_login(self): '''测试正确的用户名和密码登录''' base_url=dom_xml('url') data=open_csv('po_data.csv',1) self.driver.get(base_url) #self.driver.get(self.base_url) self.driver.refresh() wait_by_linkText(self.driver,'登录') self.driver.find_element_by_link_text('登录').click() time.sleep(2) common_login(self.driver,data['username'],data['password']) time.sleep(5) name=self.driver.find_element_by_xpath(".//div[@class='HeaderTopRight']/span").text if name.find('2473518012'): print('登录成功') def tearDown(self): self.driver.close() self.driver.quit() print('结束了') if __name__=="__main__": testsuite=unittest.TestSuite() testsuite.addTest(Login_PO("test_po_login")) fp=open('./loginresult.html','wb') runner=HTMLTestRunner(stream=fp,title='PO搜索测试报告',description='用例执行情况') runner.run(testsuite) fp.close()
def teardown_method(self, method): test_method_name = self._testMethodName with allure.step('保存截图'): self.driver.save_screenshot('../TestResult/ScreenShot/%s.png' % test_method_name) f = open('../TestResult/ScreenShot/%s.png' % test_method_name, 'rb').read() allure.attach('自动化截图', f, allure.attach_type.PNG) with allure.step('---End---'): self.driver.quit() if __name__ == '__main__': suit = unittest.TestSuite() case_list = [ TestCase('test_order_1'), TestCase('test_order_2'), TestCase('test_order_3'), TestCase('test_order_4'), TestCase('test_order_5'), TestCase('test_order_6'), TestCase('test_order_7'), TestCase('test_order_8'), TestCase('test_order_9'), ] suit.addTests(case_list) # now = time.strftime("%Y_%m_%d %H_%M_%S") file = open('../TestResult/order.html', 'wb') runner = HTMLTestRunner(stream=file, title='WWW下单——测试报告', description='测试情况') runner.run(suit) file.close()
import time, os import sys import unittest from HTMLTestRunner import HTMLTestRunner #引入HTMLTestRunner模板 if __name__ == "__main__": sys.path.append("./test_cases") test_dir = "./test_cases" #指定当前文件夹下的Interface目录 file = unittest.defaultTestLoader.discover( test_dir, pattern="test_*.py", top_level_dir=None) #匹配开头为test的py文件 now = time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(time.time())) # 取当前时间 public_path = os.path.dirname(os.path.abspath( sys.argv[0])) # 获取当前运行的.py文件所在的绝对路径 filename = public_path + "\\test_Report\\" + now + "report.html" #保存的报告路径和名称 fp = open(filename, "wb") runner = HTMLTestRunner(stream=fp, title=u"接口自动化报告", description=u"详细描述如下:") runner.run(file) #执行测试套件 fp.close()
def setUp(self): self.a=webdriver.Firefox() self.a.get('http://www.baidu.com') self.a.maximize_window() def tearDown(self): self.a.quit() def test(self): self.a.find_element_by_xpath("//input[@autocomplete='off']").send_keys('Hello world') self.a.find_element_by_xpath("//input[@id='su']") if __name__ == '__main__': sulte=unittest.TestSuite() sulte.addTest(WebTest('test')) #testrunner=unittest.TextTestRunner() #runner.run(sulte) #按照一定的格式获取当前的时间 now = time.strftime("%Y-%m-%d %H_%M_%S") #定义报告存放路径 filename = './' + now + 'test_result.html' fp = open(filename,"wb") #定义测试报告 runner = HTMLTestRunner(stream = fp, title = "xxx接口测试报告", description = "测试用例执行情况:") #运行测试 runner.run(sulte) fp.close() #关闭文件对象把数据写进磁盘
# testSuite.addTest(ReportDataReadySpec('test_record_transfer')) # testSuite.addTest(ReportDataReadySpec('test_record_input_invoice')) # testSuite.addTest(ReportDataReadySpec('test_record_output_invoice')) # external # 记录完全部收入、支出、互转,手指列表本月收入为42,650.92,支出为70,584.30 # testSuite.addTest(EnterCompSpec('test_enter_comp')) # 创建帐套 # testSuite.addTest( CreateCompSpec( 'test_verify_create_comp' ) ) # testSuite.addTest(CreateCompSpec('test_create_comp_empty_comp_name')) # testSuite.addTest(CreateCompSpec('test_create_comp_empty_legal_person')) # 帐套列表 # 分配会计/助理/客服联系人 # testSuite.addTest(DistributeModalSpec('test_distribute_accounting')) # 启用期初帐页面 testSuite.addTest(BeginningPeriodSpec('test_import_initial_account')) # testSuite.addTest(UserSettingSpec('test_go_to_comp_billing_page')) # testSuite.addTest(SidebarSpec('test_get_current_account_period')) # testSuite.addTest(CreateWaysSpec('test_input_comp_name_jump_to_create_page')) now = time.strftime('%Y-%m-%d %H_%M_%S') report_dir = './report/cai_test' filename = report_dir + '/' + now + '_result.html' testReport = open(filename, 'wb') runner = HTMLTestRunner(stream=testReport, title="管有账测试报告", description='测试用例执行情况:') runner.run(testSuite) testReport.close()
def test_error(self): self.assertEqual(a, 6) class TestDemo2(unittest.TestCase): def test_success(self): self.assertEqual(2 + 2, 4) class TestDemo3(unittest.TestCase): def test_fail(self): self.assertEqual(3, 4) if __name__ == '__main__': suit = unittest.TestSuite() suit.addTest(TestDemo("test_success")) suit.addTest(TestDemo("test_skip")) suit.addTest(TestDemo("test_fail")) suit.addTest(TestDemo("test_error")) suit.addTest(TestDemo2("test_success")) suit.addTest(TestDemo3("test_fail")) fp = open('./result.html', 'wb') runner = HTMLTestRunner(stream=fp, title='<project name>test report', description='describe: ... ') runner.run(suit, rerun=0, save_last_run=False) fp.close()
#self.assertTrue(1 != 0) def test_it_is_false(self): self.assertFalse(1 == 0) def test_single_quote_strings(self): self.assertTrue('aaa' == "aaa") def test_strip_strings(self): self.assertTrue(" aaa ".strip() == "aaa") self.assertTrue(" aaa".lstrip() == "aaa") self.assertTrue("aaa ".rstrip() == "aaa") def fun_suite(): suite = unittest.TestSuite() loader = unittest.TestLoader() suite.addTests(loader.loadTestsFromTestCase(TestMountain)) return suite if __name__ == '__main__': #res = unittest.TextTestRunner(verbosity=2).run(fun_suite()) fp = open('./test_result_%s.html' % time.strftime("%Y-%m-%d %H-%M-%S"), 'wb') runner = HTMLTestRunner(stream=fp, title='百度搜索测试报告', description="测试用例执行情况:") runner.run(fun_suite()) fp.close() sys.exit(0)
import unittest from UnitTest.StringReplace import StringReplaceTestcase from HTMLTestRunner import HTMLTestRunner if __name__ == "__main__": suite = unittest.TestSuite() # 运行部分测试用例1 # suite.addTest(StringReplaceTestcase("testBlank")) # suite.addTest(StringReplaceTestcase("testOrd")) # runner = unittest.TextTestRunner() # runner.run(suite) # 运行部分测试用例2 # tests = [StringReplaceTestcase("testBlank"),StringReplaceTestcase("testOrd")] # suite.addTests(tests) # runner = unittest.TextTestRunner() # runner.run(suite) #运行全部测试用例1 # tests = [StringReplaceTestcase("testBlank"), StringReplaceTestcase("testOrd"),StringReplaceTestcase("testBlankOrd"),StringReplaceTestcase("testOrdBlank")] # suite.addTests(tests) # runner = unittest.TextTestRunner() # runner.run(suite) # 运行全部测试用例2 alltests = unittest.makeSuite(StringReplaceTestcase, "test") f = open("E:\\result.html", "wb") runner = HTMLTestRunner(stream=f, title="测试结果", description="测试用例的执行情况") # runner = unittest.TextTestRunner(verbosity=2) runner.run(alltests)
date = time.strftime("%Y%m%d") time = time.strftime("%Y%m%d%H%M%S") # 定义path为文件路径,目录级别,可根据实际情况自定义修改 path = 'D:/Python_test/' + date + "/login/" + time + "/" # 定义报告文件路径和名字,路径为前面定义的path,名字为report(可自定义),格式为.html report_path = path + "report.html" # 判断是否定义的路径目录存在,不能存在则创建 if not os.path.exists(path): os.makedirs(path) else: pass # 定义一个测试容器 testsuite = unittest.TestSuite() # 将测试用例添加到容器 testsuite.addTest(LoginCase("test_login_success")) testsuite.addTest(LoginCase("test_hh")) # 将运行结果保存到report,名字为定义的路径和文件名,运行脚本 with open(report_path, 'wb') as report: runner = HTMLTestRunner(stream=report, title=report_title, description=desc) runner.run(testsuite) # 关闭report,脚本结束 report.close() # 关闭浏览器
import unittest import time from HTMLTestRunner import HTMLTestRunner def creat_suite(): testunit=unittest.TestSuite() #定义测试文件查找的目录 test_dir=r"D:\mygit\work_one\v_two\app_center" #定义discover方法的参数 discover=unittest.defaultTestLoader.discover(test_dir, pattern='test*.py', top_level_dir=None ) for test_case in discover: print test_case testunit.addTest(test_case) return testunit test_time=time.strftime("%Y-%m-%d %H_%M_%S") # 家里的存放地址 # save_path=os.path.abspath(r"E:\mypython\pengpeng\pp_test_report\testreport") # 公司的存放地址 #save_path=os.path.abspath(r'D:\mygit\work_one\v_two\pp_test_report\datebase_testreport') filename='D:\\mygit\\work_one\\v_two\\pp_test_report\\datebase_testreport\\'+test_time+'result.html' fp=file(filename,'wb') runner=HTMLTestRunner(stream=fp, title='数据中心测试报告', description='设置类子项目测试报告' ) if __name__=="__main__": alltestnames=creat_suite() runner.run(alltestnames) fp.close()
import time import unittest from HTMLTestRunner import HTMLTestRunner test_dir = './' suits = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') if __name__ == '__main__': # runner = unittest.TextTestRunner() # runner.run(suits) now = time.strftime("%Y-%m-%d_%H_%M_%S") filename = './test_report/' + now + 'result.html' # fp = open(filename, 'w',encoding='utf-8') //用之前版本的HtmlTestRunner.py这样写 fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='unittest_sample测试报告', description='报告如下:') runner.run(suits) fp.close()
return testunit test_case = Creatsuite() #获取系统当前时间 now = time.strftime('%Y-%m-%d_%H_%M_%S', time.localtime(time.time())) day = time.strftime('%Y-%m-%d', time.localtime(time.time())) #定义个报告存放路径,支持相对路径 tdresult = result + day if os.path.exists(tdresult): filename = tdresult + "/" + now + "_result.html" fp = open(filename, 'wb') #定义测试报告 runner = HTMLTestRunner(stream=fp, title='Appium测试报告', description='用例详情:') #运行测试用例 runner.run(test_case) fp.close() #关闭报告文件 else: os.mkdir(tdresult) filename = tdresult + "/" + now + "_result.html" fp = open(filename, 'wb') #定义测试报告 runner = HTMLTestRunner(stream=fp, title='Appium测试报告', description='用例详情:') #运行测试用例 runner.run(test_case) fp.close() #关闭报告文件
def test_query1(self): self.driver.find_element(By.XPATH, '//div/ul/div/li/ul/li[1]').click() def test_query2(self): self.driver.find_element(By.XPATH, '//div/ul/div/li/ul/li[2]').click() def test_query3(self): self.driver.find_element(By.XPATH, '//div/ul/div/li/ul/li[3]').click() # if __name__ == '__main__': # test = unittest.TestSuite() # test.addTest(Orderquery_test('test_query1')) # unittest.main(defaultTest='test') current_path = os.path.dirname(__file__) report_path = os.path.join(current_path, 'report') cases_path = os.path.join(current_path, 'test_cases') html_path = os.path.join(report_path, "report_%s.html" % time.strftime('%Y_%m_%d_%H_%M_%S')) # discover = unittest.defaultTestLoader.discover(start_dir=cases_path,pattern='*_case.py', # top_level_dir=cases_path) main_suite = unittest.TestSuite() main_suite.addTest(Orderquery_test('test_query1')) file = open(html_path, 'wb') html_runner = HTMLTestRunner(stream=file, title='MMC自动化测试项目', description='由华仔搭建,逐渐完善中') html_runner.run(main_suite)
self.ssh.get_result_from_chan() self.ssh.send_cmd("ls chen/\t\t") ret = "" while True: if self.ssh.chan.recv_ready(): time.sleep(0.1) ret += self.ssh.get_result_from_chan() break # print(repr(ret)) print(ret) self.assertEqual("xxx", ret) def test_1(self): self.assertEqual("a", "a", "相等") def test_2(self): self.assertEqual("a", "b", "不等") if __name__ == "__main__": # test_suit = unittest.TestSuite() test_suit = TestLoader().loadTestsFromTestCase(ParamikoTest) # test_suit.addTests([ParamikoTest("test_1"), ParamikoTest("test_2")]) # suit = unittest.TestSuite([test_suit]) with open("report1.html", "wb") as f: runner = HTMLTestRunner(stream=f, title="test_report", description="html", verbosity=2) runner.run(test_suit)
#!../bin/python # coding: utf-8 import sys import unittest from HTMLTestRunner import HTMLTestRunner from cases.test_amenity import AmenityTestCase from cases.test_ubike import UbikeTestCase # 防止中文錯誤 reload(sys) sys.setdefaultencoding('utf8') # 產生 HTML 版本的測試報表 mySuite = unittest.TestSuite() mySuite.addTest(unittest.makeSuite(AmenityTestCase)) mySuite.addTest(unittest.makeSuite(UbikeTestCase)) runner = HTMLTestRunner(title='OSM.TW 測試報告', description='台灣開放街圖資料完整性測試報告') runner.run(mySuite)
def tearDown(self): pass def test_it_is_true(self): self.assertTrue(1 == 0) #self.assertTrue(1 != 0) def test_it_is_false(self): self.assertFalse(1 == 0) # def suite(): # loader = unittest.TestLoader() # suite = unittest.TestSuite() # suite.addTests(loader.loadTestsFromTestCase(TestMountain)) # return suite def fun_suite(): suite = unittest.TestSuite()#创建测试套 loader = unittest.TestLoader() #加载 suite.addTest(loader.loadTestsFromTestCase(TestMountain))#把用例加载到测试套 return suite #返回测试套 if __name__ == "__main__": #自定义报告 fp = open('./test_result_%s.html'% time.strftime("%Y-%m-%d %H-%M-%S"),'wb') runner = HTMLTestRunner(stream=fp, title="测试报告", description="测试的执行情况:") runner.run(fun_suite()) fp.close() sys.exit(0)
now = datetime.datetime.now() # 到达设定时间,结束内循环 if now.hour == h and now.minute == m: break # 不到时间就等20秒之后再次检测 time.sleep(50) # 做正事,一天做一次 if __name__ == '__main__': result = open(report_name, 'wb') runner = HTMLTestRunner(stream=result, title=report_title, description=report_description) result_run = runner.run(create_suite()) # 运行测试用例 result.close() # 关闭报告文件 remote_path = http_dir + report_name pass_count = result_run.success_count fail_count = result_run.failure_count error_count = result_run.error_count start_time = runner.getReportAttributes(result_run)[0][1] duration = runner.getReportAttributes(result_run)[1][1] content = report_template.html_summary_content(pass_count, fail_count, error_count, start_time, duration) content_report_path = report_template.html_report_path( remote_path) # 简要测试报告中包含的详情报告地址信息 if generate_report(report_name, report_title, report_description) is True: # 执行测试完成,报告生成
import unittest import time from HTMLTestRunner import HTMLTestRunner suit = unittest.defaultTestLoader.discover('./test_case', pattern='test_baidu.py') if __name__ == "__main__": now_time = time.strftime("%Y-%m-%d %H_%M_%S") name = './test_report/' + now_time + '.result.html' wenjian = open(name, 'wb') ht = HTMLTestRunner(stream=wenjian, title="测试报告", description="Windows 10 ,Chorme浏览器") ht.run(suit) wenjian.close()
class SuiteClass(unittest2.TestCase): def suiteone(self): test_suite = unittest2.TestSuite() test_suite.addTest(HomePageTest('test_home_page')) test_suite.addTest(AddRemoveElementsPageTest('test_add_elements')) test_suite.addTest(AddRemoveElementsPageTest('test_remove_elements')) test_suite.addTest(UIAlignmentPageTest('test_go_to_ui_alignement_page')) test_suite.addTest(UIAlignmentPageTest('test_go_to_ui_random_url_page')) test_suite.addTest(UIAlignmentPageTest('test_go_to_ui_shift_url_page')) test_suite.addTest(UIAlignmentPageTest('test_go_to_ui_random_shift_url_page')) return test_suite def setUpModule(self): print("Setup") HomePageTest.setUpModule() def tearDownModule(self): print("Teardown") HomePageTest.tearDownModule() if __name__ == '__main__': path =os.getcwd() SuiteClass.setUpModule(object) test_suite = SuiteClass.suiteone(object) unittest2.TextTestRunner() runner =HTMLTestRunner(output=path + const.smoketest_reports, verbosity=2, descriptions=True, failfast=True, buffer=False, report_title= const.smoketest_reportstitle, template=None, resultclass=None) runner.run(test_suite) SuiteClass.tearDownModule(object)
class Test_unit(unittest.TestCase): def setUp(self): print("test start") self.driver = webdriver.Chrome() self.driver.get("http://192.168.0.185/zentao/user-login.html") def test_login(self): # 登录 zentao = Zentao(self.driver) # 实例化类 self.assertEqual(zentao.login("admin", "Qwe123"), "我的地盘 - 禅道") def test_createproduct(self): zentao = Zentao(self.driver) zentao.login("admin", "Qwe123") productname = "product3" productcode = "code3" self.assertEqual(zentao.createproduct(productname, productcode), "product3" + "::浏览产品 - 禅道") def tearDown(self): print("test end") if __name__ == "__main__": testuint = unittest.TestSuite() testuint.addTest(Test_unit("test_login")) testuint.addTest(Test_unit("test_createproduct")) fr = open('d:/testresult.html', 'wb') runner = HTMLTestRunner(stream=fr, title='报告', description='用例执行情况') runner.run(testuint) fr.close()
# -*- encoding: utf-8 -*- ''' @File : run.py @Contact : [email protected] @function: TODO @Modify Time @Author @Version @Desciption ------------ ------- -------- ----------- 2019/5/16 11:05 loudDD 1.0 None ''' # import lib import unittest from HTMLTestRunner import HTMLTestRunner if __name__ == '__main__': discovery = unittest.defaultTestLoader.discover("./", pattern="test*.py") with open("./result.html", "wb") as f: runner = HTMLTestRunner(stream=f, title="test report", description="test case result") runner.run(discovery)
中),默认为 None ''' if __name__ == '__main__': """直接加载discover""" # 方法一: ''' fp = open('result.html', 'wb') runner = HTMLTestRunner(stream=fp, title='测试报告', description='测试情况' ) runner.run(discover) ''' """通过把discover中的用例加载到测试套件""" # 方法二: suit = unittest.TestSuite() # 创建一个测试集合 # discover 方法筛选出来的用例,循环添加到测试套件中 for test_suit in discover: for test_case in test_suit: suit.addTest(test_case) print(suit) # 打印一下可以看到suite中添加了哪些测试用例 fp = open('result.html', 'wb') runner = HTMLTestRunner(stream=fp, title='测试报告', description='测试情况' ) runner.run(suit)
pass time.sleep(1) else: self.fail("time out") # 对标题进行断言 self.assertEqual(driver.title, u"HTMLTestRunner_百度搜索") try: self.assertEqual(driver.title, u"HTMLTestRunner_百度搜索") except BaseException as error: print(error) def tearDown(self): self.driver.quit() if __name__ == "__main__": suite = unittest.TestSuite() suite.addTest(Baidutest("test_search")) # 定义测试报告存放路径 # 通过open()方法打开C:\Users\Administrator\Desktop\report.html,没有则自动创建该文件 fp = open(r'C:\Users\Administrator\Desktop\report.html', 'wb') # 定义测试报告 runner = HTMLTestRunner( stream=fp, # stream制定测试报告文件 title=u'百度搜索测试报告', # title定义测试报告标题 description=u'用例执行情况:') # description定义测试报告副标题 runner.run(suite) # 通过HTMLTestRunner的run()方法来运行测试套件 fp.close() # 关闭测试报告
# 动态生成测试方法 cases_name = [] for case in cases: fn_name = 'test_' + case[0] fn = getattr(case_template, '_'+case[1]) fn.__doc__ = u'测试' setattr(scence_cls, fn_name, fn) cases_name.append([fn_name, case[2:]]) # 添加测试用例到测试套件中 for case_name, params in cases_name: t = scence_cls(case_name) t.param = { 'url': params[0], 'headers': params[1], 'body': params[2], 'expect': params[3], } testsuit.addTest(t) return testsuit if __name__ == '__main__': # 生成测试报告 with open('report.html', 'wb') as f: runner = HTMLTestRunner(stream=f, title='', description='') runner.run(gen_test_suite())
def runs(self, script): log.info("-------测试用例开始---------") self.script = script # if(test_dir): self.test_dir = test_dir # if(report_dir): self.report_dir = report_dir discover = unittest.defaultTestLoader.discover(self.test_dir, pattern=self.script) beginDate = time.time() beginDateTime = datetime.datetime.now() # 创建报告文件夹 dir1 = time.strftime("%Y%m") dir2 = time.strftime("%d") if (not os.path.exists(self.report_dir + '/' + dir1)): os.mkdir(self.report_dir + '/' + dir1, 777) if (not os.path.exists(self.report_dir + '/' + dir1 + '/' + dir2)): os.mkdir(self.report_dir + '/' + dir1 + '/' + dir2, 777) # 报告文件完整路径 now = time.strftime("%Y-%m-%d %H_%M_%S") report_name = self.report_dir + '/' + dir1 + '/' + dir2 + '/' + now + '_result.html' # 打开文件在报告文件写入测试结果 with open(report_name, 'wb') as f: log.info("报告文件:" + report_name) try: runer = HTMLTestRunner(stream=f, title="Test Report [{0}]".format( self.script), description='Test case result') result = runer.run(discover) # attrs = runer.getReportAttributes(result) #插入数据库 ent = Na_Script_Result() # 读取脚本的ID if (result.result.__len__() > 0): rs = result.result for item in rs: if (item.__len__() > 0): ent.script_id = item[1].script_id ent.script_name = item[1].script_name ent.target_url = item[1].target_url ent.log_path = item[1].log_path ent.creator_id = sys.argv[1] ent.creator_cn_name = sys.argv[2] ent.creator_en_name = sys.argv[3] ent.department_id = sys.argv[4] ent.department_cn_name = sys.argv[5] ent.department_en_name = sys.argv[6] ent.status = 1 ent.result_error = result.error_count ent.result_failed = result.failure_count ent.result_pass = result.success_count ent.result_file = report_name if (result.error_count > 0): ent.result_context = json.dumps(result.errors[0][1]) elif (result.failure_count > 0): ent.result_context = json.dumps(result.failures[0][1]) ent.run_time = round(time.time() - beginDate, 4) endDateTime = datetime.datetime.now() # 结果插入数据库 ent.add() except Exception as e: log.info("-------测试用例执行失败---------") ent = Na_Script_Result() # 读取脚本的ID ent.script_id = self.script ent.creator_id = sys.argv[1] ent.creator_cn_name = sys.argv[2] ent.creator_en_name = sys.argv[3] ent.department_id = sys.argv[4] ent.department_cn_name = sys.argv[5] ent.department_en_name = sys.argv[6] ent.status = 1 ent.result_error = 1 ent.result_failed = 0 ent.result_pass = 0 ent.result_context = e ent.run_time = round(time.time() - beginDate, 4) # 结果插入数据库 endDateTime = datetime.datetime.now() ent.add() # log.info(json.dumps(e)) f.close() endDate = time.time() try: # 写本地执行日志 entLocal = DbRunLogs.create( script_id=ent.script_id, script_name=ent.script_name, target_url=ent.target_url, log_file=ent.log_path, report_file=ent.result_file, run_begin=beginDateTime.strftime("%Y-%m-%d %H:%M:%S"), run_end=endDateTime.strftime("%Y-%m-%d %H:%M:%S"), run_time=ent.run_time, created_at=datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S"), type=1) entLocal.save() except Exception as e: print(e) log.info("-------测试用例结束----(" + str(round(endDate - beginDate, 4)) + " s)-----")
import unittest from HTMLTestRunner import HTMLTestRunner import os from test_case.unitt import oxcase from jiekou.main import MyTestCase s = unittest.TestSuite() s.addTest(oxcase('test_1')) # s.addTest(MyTestCase("test_01")) unittest.TestLoader() s.addTest(unittest.TestLoader().loadTestsFromTestCase(MyTestCase)) # s.addTest(loader.loadTestsFromTestCase(oxcase)) di = r'F:\接口和ui一体自动化\work\report' report_file = di + r'\report2.html' if not os.path.exists(di): os.mkdir(di) else: pass # t = TextTestRunner() # 调用执行套件方法 # t.run(s) # 执行套件 fp = open(report_file, 'wb') text = HTMLTestRunner(stream=fp, title=u"测试报告", description=u"测试结果如下") text.run(s) fp.close()
# return suite # 用例路径 case_path = os.path.join(os.getcwd(),'testcase') print(case_path) def all_case(): discover = unittest.defaultTestLoader.discover(case_path, pattern="*.py",top_level_dir=None) print(discover) return discover #if __name__ == '__main__': # with open('fk_test_report.txt', 'a') as f: # # 创建测试运行器(TestRunner),将测试报告输出到文件中 # runner = unittest.TextTestRunner(verbosity=2, stream=f) # runner.run(whole_suite()) if __name__ == "__main__": #报告存放位置以及名称 report_path = os.path.join(os.getcwd(),"report.html") fp=file(report_path,"w+") runner=HTMLTestRunner(stream=fp,title="hello",description="用例测试情况") runner.run(all_case()) GEN_HTML = report_path #运行完自动在网页中显示 webbrowser.open(GEN_HTML,new = 1)
class test_login01(unittest.TestCase): """测试说明1""" def setUp(self): print ('test start') def test_login_suess(self): """测试说明2""" www=BaseFun.Base() "继承了BaseFun01.py下,base类里的各种方法,传入参数直接用" www.open_browser_with_firefox(r'http://awsbj-openmanagement.xingyunzhi.cn/developer-user/login')#打开网址 www.login('wxg','wxg')#用户名和密码传参数 el=www.by_xpath(".//*[@id='content']/div/div/div/div[2]/div[2]/div/a").text#提取要断言的文字 self.assertEqual('搜索',el)#断言 time.sleep(2) www.close_browser() def tearDown(self): print ('test end') if __name__=="__main__": testunit=unittest.TestSuite() testunit.addTest(test_login01("test_login_suess")) test_time=time.strftime("%Y_%m_%d_%H_%M_%S") #save_path=os.path.abspath(r"E:\mypython\pengpeng\pp_test_report\testreport")#家里的存放地址 save_path=os.path.abspath(r"D:\mygit\work_one\pp_test_report\testreport")#公司的存放地址 filename=save_path+test_time+'.html' print filename htmlreprot=open(filename,'wb') runner=HTMLTestRunner(stream=htmlreprot, title='这是标题', description='这是测试报告详细内容' ) runner.run(testunit) htmlreprot.close()
# 指定测试报告的路径 test_report_dir = 'C:\\Users\\sgk_lj\\PycharmProjects\\crm_ci_api_test' """with open('Judge_test_report_Online.html', 'w') as f: runner = HTMLTestRunner(stream=f, title='Judge Online Env Test Report', description='generated by HTMLTestRunner.', verbosity=2 ) runner.run(gl.suite)""" discover = gl.suite now = time.strftime('%Y-%m-%d_%H_%M_%S_') filename = test_report_dir + '\\' + 'Judge_test_report_Online.html' fp = open(filename, 'wb') # 需屏蔽fp中的中文文字说明。否则在windows下执行会报:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 553: ordinal not in range(128) runner = HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况:') result = runner.run(discover) print result.success_count fp.close() # 2.取最新测试报告 new_report = new_file(test_report_dir) # 调试用的 # print new_report # 3.发送邮件,发送最新测试报告html if result.success_count != gl.suite.countTestCases(): print '=====发送邮件======' send_email(new_report) print '=====已经发送======'
dr.find_element_by_id("su").click() def tearDown(self): self.dr.close() if __name__ == '__main__': testunit = unittest.TestSuite() testunit.addTest(Baidu("test_baidu_search")) #定义报告存放路径 fp = open('./result.html', 'wb') #定义测试报告 runner = HTMLTestRunner(stream=fp, title='百度搜索测试报告', description='用例执行情况: ') runner.run(testunit) #运行测试用例 fp.close() # 执行方式:alt+shfit+F10 """ 发现了问题所在,是软件使用问题运行脚本,楼主一定是用了快捷键CTRL+SHIFT+F10 切记,要用ALT+SHIFT+F10,然后去选择你的脚本的文件名字,去执行。就一切正常了! 在遇到单元测试框架的时候,测试用例本身和下面的执行过程,是分开执行的。 就是说if __name__=="__main__"下面的执行过程是不被执行的。 只是执行了面用例的脚本部分。 """
@classmethod def tearDownClass(self): time.sleep(1) self.driver.quit() # if __name__ == '__main__': # testunit = unittest.TestSuite() # testunit.addTest(unittest.makeSuite(Login)) # fp = open(r'D:\testresult.html', 'wb') # runner = HTMLTestRunner(stream=fp, title="测试报告", description="用例执行情况") # runner.run(testunit) # fp.close() ##unittest.main()函数用来测试类中以test开头的测试用例 if __name__ == '__main__': testunit = unittest.TestSuite() # 定义一个单元测试容器 testunit.addTest(Login("test_login")) # 将测试用例加入到测试容器中 testunit.addTest(Login("test_search")) # 取前面时间%Y-%m-%M-%H_%M_%S now = time.strftime("%Y-%m-%d-%H%M%S", time.localtime(time.time())) # 把当前时间加到报告中,定义报告存放路径,支持相对路径 filename = "G:\\xiazaitp\\" + now + 'result.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title="测试报告", description="用例执行情况") runner.run(testunit) #自动进行测试 fp.close() #关闭打开的文件 print("232")
# coding:utf-8 import unittest import time from HTMLTestRunner import HTMLTestRunner import sys reload(sys) sys.setdefaultencoding('utf8') test_dir = './' discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') if __name__ == '__main__': now = time.strftime("%Y-%m-%d%H%H%S") filename = 'G:\\05_pypro\\rest_interface\\report\\' + now + '_restult.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:') runner.run(discover) fp.close()
# -*- coding: utf-8 -*- import sys import time import os from HTMLTestRunner import HTMLTestRunner #import unittest from unittest import defaultTestLoader sys.path.append('./interface') sys.path.append('./report') test_dir = './interface' report_dir = './report' testsuit = defaultTestLoader.discover(test_dir, pattern='*_test.py') if __name__ == "__main__": now = time.strftime("%Y-%m-%d %H_%M_%S") filename = './report/' + now + 'result.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='yanss_API', description='mysql, python, request,unittest') runner.run(testsuit) fp.close() os.system("python " + report_dir + "/sendMail.py") #unittest.TextTestRunner().run(testsuit)
tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")] # 添加测试用例列表 suite.addTests(tests) # 将测试用例列表添加到测试组中 suite.addTest(TestMathFunc("test_multi")) # 直接用addTest方法添加单个TestCase # 用addTests + TestLoader。不过用TestLoader的方法是无法对case进行排序的 # loadTestsFromName(),传入'模块名.TestCase名' suite.addTests(unittest.TestLoader().loadTestsFromName('test_mathfunc.TestMathFunc')) suite.addTests(unittest.TestLoader().loadTestsFromNames(['test_mathfunc.TestMathFunc'])) # loadTestsFromNames(),类似,传入列表 # loadTestsFromTestCase(),传入TestCase suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestMathFunc)) # suite中也可以套suite # 将测试结果输出到测试报告中 # with open('UnittestTextReport.txt', 'a') as f: # runner = unittest.TextTestRunner(stream=f, verbosity=2) # runner.run(suite) # 将测试结果输出到测试报告html中 with open('HTMLReport.html', 'w') as f: runner = HTMLTestRunner(stream=f, title='MathFunc Test Report', description='generated by HTMLTestRunner.', verbosity=2 ) runner.run(suite) # 直接将结果输出到控制台 # runner = unittest.TextTestRunner(verbosity=2) # runner.run(suite)
import os import unittest from HTMLTestRunner import HTMLTestRunner # 自动寻找测试用例并生成报告 # suite = unittest.TestSuite() loader = unittest.TestLoader() start_dir = os.path.dirname(os.path.abspath(__file__)) suite1 = loader.discover(start_dir) with open('../report/demo.html', 'wb') as f: runner = HTMLTestRunner(stream=f, verbosity=2, title=u'接口测试报告', description=u'用例执行情况', tester=u'刘旺') runner.run(suite1)
#coding:UTF-8 import unittest # from test_mathfunc import TestMathFunc from HTMLTestRunner import HTMLTestRunner if __name__ == '__main__': # suite = unittest.TestSuite() # suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestMathFunc)) deaultsuite = unittest.defaultTestLoader.discover( "E:\work\RF\RaiseSalary\LearnUnittest", pattern="test_mathfunc.py") # runner = unittest.TextTestRunner(verbosity=2) # runner.run(deaultsuite) with open('test_math_HTMLTestReport.html', mode='wb') as f: runner = HTMLTestRunner(stream=f, title="Test Math Report", description="by HTMLTestRunner", verbosity=2) runner.run(deaultsuite)
#! /usr/bin/env python # coding=utf-8 from cases.case1 import siteTest import unittest from HTMLTestRunner import HTMLTestRunner class scriptTest(unittest.TestCase): def setUp(self): self.url = "http://mail.163.com" def tearDown(self): pass def test_case1(self): site = siteTest(self.url, userName="", passWd="") self.assertEqual(site.login(), "pass") if __name__ == '__main__': testsuite = unittest.TestSuite() testsuite.addTest(scriptTest("test_case1")) testsuite.addTest(scriptTest("test_case1")) run = HTMLTestRunner(file("result.html", 'wb'), title=u"测试报告", description=u"测试结果:") run.run(testsuite)