def send_email(self): '''发送邮件''' try: smtp = smtplib.SMTP() smtp.connect(self.smtp_server) smtp.login(user=self.smtp_sender, password=self.smtp_password) smtp.sendmail(self.smtp_sender, self.smtp_receiver.split(",") + self.smtp_cc.split(","),self.emial_message_body().as_string()) # 接收者作为列表 logger.info('发送邮件成功') except Exception as e: logger.error('邮件发送失败,失败的原因是:{}'.format( e.__str__() ))
def run(self): '''运行所有测试用例''' report_dir = HTMLTestReportCN.ReportDirectory( self.report_path) # 创建测试报告的目录对象,传入测试报告路径 report_dir.create_dir(self.title) # 创建测试报告存放文件夹 create_dir() 起一个标题 report_file_path = HTMLTestReportCN.GlobalMsg.get_value( 'report_path') # 创建路径,每次都会创建最新的文件 logger.info( '\n\n====================================================创建测试报告文件路径成功====================================================\n\n' ) fp = open(report_file_path, 'wb') # 创建文件 runner = HTMLTestReportCN.HTMLTestRunner(stream=fp, title=self.title, description=self.description, tester=self.tester) runner.run(self.load_test_suite()) time.sleep(2) fp.close() return report_file_path # 返回最新的测试报告路径供邮件调用
def load_test_suite(self): '''加载所有测试套件 start_dir=self.test_case_path, 起始目录路径一般和top_level_dir一样 pattern='api_test.py',#只有一个excel,可以写死 ''' try: discover = unittest.defaultTestLoader.discover( start_dir=self.test_case_path, pattern='api_test.py', top_level_dir=self.test_case_path) all_suite = unittest.TestSuite() # 创建测试套件对象 all_suite.addTest(discover) # 加载discover中的东西 logger.info( '\n\n====================================================加载所有测试用例完毕====================================================\n\n' ) logger.info( '\n\n====================================================开始执行所有测试用例====================================================\n\n' ) except Exception as e: logger.error( '\n\n===================================================加载所有测试用例失败,失败的原因是:{}====================================================\n\n' .format(e.__str__())) return all_suite # 搜索用例加载测试用例,可以优化写成方法
runner = HTMLTestReportCN.HTMLTestRunner(stream=fp, title=self.title, description=self.description, tester=self.tester) runner.run(self.load_test_suite()) time.sleep(2) fp.close() return report_file_path # 返回最新的测试报告路径供邮件调用 if __name__ == '__main__': writefakertestdatas.write_data() try: logger.info( '\n\n====================================================开始清除上次测试结果保留的值====================================================\n\n' ) TestdataUtils().clear_result_from_excel() logger.info( '\n\n====================================================开始清除上次测试结果保留的值成功====================================================\n\n' ) except Exception as e: logger.error( '\n\n===================================================清除上次测试结果保留的值失败,失败的原因是:{}==========================================\n\n' .format(e.__str__())) try: report_path = Runcase().run() logger.info( '\n\n===================================================已执行完所有测试用例,测试活动结束==========================================\n\n' )
#!/usr/bin/env python # encoding: utf-8 # @author: Mrliu # @file: demo.py # @time: 2020/5/13 23:09 # @desc: import os from common.nblog_utils import logger logger.debug('liseen') logger.info('liseen') logger.warning('liseen')
#!/usr/bin/env python # encoding: utf-8 # @author: Mrliu # @file: demo.py # @time: 2020/5/13 23:09 # @desc: import warnings import paramunittest import unittest from common.testdata_utils import TestdataUtils from common.requests_utils import RequestsUtils from common.config_utils import conf from common.nblog_utils import logger case_infos = TestdataUtils().def_testcase_data_list() #取出所有测试用例数据 logger.info('\n\n====================================================正在获取测试用例数据====================================================\n\n') @paramunittest.parametrized( *case_infos ) class ApiTest(paramunittest.ParametrizedTestCase): def setUp(self): '''解决报警问题''' warnings.simplefilter( 'ignore',ResourceWarning ) def setParameters(self, case_id, case_info): self.case_id = case_id self.case_info = case_info def test_api_common_function(self):
def write_data(self): data = logger.info('============开始写入测试数据:============\n{}'.format( self.write_to_excel(1, 8,{"username": "******", "password": "******","code": writefakertestdatas.get_goole_code(),"rememberMe": "1"}) )) return data