Pyhthon+unittest+BSTestRunner+DingtalkChatbot执行自动化测试,生成测试报告并发送钉钉机器人

Hoshi ·
更新时间:2024-09-20
· 977 次阅读

文章目录引言实现思路代码实现 引言

自动化测试中,不管是UI自动化,还是接口自动化,最终会执行测试用例执行文件,如命名为:run_test_case.py的文件,现整理一下该文件的通用代码实现,也可以根据自己的实际需要进行增减
本文将呈现的是:用Pyhthon+unittest+BSTestRunner+DingtalkChatbot实现执行自动化测试,生成测试报告并发送钉钉机器人
要想彻底解放双手,可以再结合Jenkins构建定时任务,帮你定时、周期的执行run_test_case.py,下面的内容主要是代码的实现

实现思路

1、指定测试用例和测试报告的路径
2、定义测试报告文件格式
3、加载测试用例
4、运行测试用例并生成测试报告
5、获取测试报告url
6、chrome无头浏览器,打开测试报告url
7、检测报告内容是否有接口fail,有则发送通知到钉钉机器人
8、关闭浏览器

代码实现 import unittest import time from BSTestRunner import BSTestRunner from selenium import webdriver from selenium.webdriver.chrome.options import Options #定义chrome无头浏览器 from dingtalkchatbot.chatbot import DingtalkChatbot #发送通知到钉钉机器人 # 指定测试用例和测试报告的路径 test_case_dir = './XXX_test_case' test_reports_dir = './XXX_test_reports' # 定义测试报告文件格式 now = time.strftime('%Y-%m-%d %H_%M_%S') test_report_name = test_reports_dir+'/'+now+' XXX_test_resport.html' # 加载测试用例 print('开始执行测试用例') discover = unittest.defaultTestLoader.discover(test_case_dir,pattern='XXX_test.py') # 运行测试用例并生成测试报告 print('开始生成测试报告...') with open(test_report_name,'wb') as f: runner = BSTestRunner(stream=f,title='XXX接口自动化测试报告',description='这是关于XXX的接口测试报告') runner.run(discover) f.close() # 获取测试报告url test_reports_url = 'file:///D:/your_object_path'+test_report_name print('测试报告的地址是:{}'.format(test_reports_url)) # chrome无头浏览器,打开测试报告url chrome_options = Options() chrome_options.add_argument('- -headless') chrome_options.add_argument('- -disable-gpu') driver = webdriver.Chrome(chrome_options=chrome_options) driver.get(test_reports_url) time.sleep(5) print('测试报告的名称是:{}'.format(driver.title)) # 检测报告内容是否有接口fail,有则发送通知到钉钉机器人 element = driver.find_element_by_xpath('//*[@id="result_table"]/tbody/tr[1]/td[4]') fail_text = element.get_attribute('textContent') print('报错接口数量有: {} 个'.format(fail_text)) if fail_text != '0': # 发送通知到钉钉机器人 print ('报告已生成,但有异常接口,开始发送通知到钉钉机器人...' ) webhook = 'https://oapi.dingtalk.com/robot/send?access_token=your_token' #用你的实际token替换your_token xiaoding = DingtalkChatbot ( webhook ) xiaoding.send_text ( msg="《{}》已生成,有 {} 个异常接口!请用浏览器打开查看详情,链接是:{}".format(driver.title ,fail_text,test_reports_url)) else: print('《{}》已生成,无异常接口,很棒!'.format(driver.title)) # 关闭浏览器 driver.quit()
作者:luoluoxx0115



自动 自动化 并发 unittest 自动化测试 测试报告 机器人 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章