在前面的几篇文章中,
postman接口用例转化为python自动化测试用例
postman接口用例转化为python自动化测试用例(二)
postman接口用例转化为python自动化测试用例(三)
python自动化测试用例之----引入ddt数据驱动
四篇文章,从复制postman 请求到自动化测试用例,到引入ddt数据驱动,做了很好的实践,那么这篇文章呢,进行一个测试后的,测试通知功能。其实我们都知道,自动化 不能简单的只停留在自动化执行,我们还要自动化的去告知测试完毕,甚至 自动发送测试报告。这里我举一个简单的例子,现在很多公司 办公都用钉钉,那么我就用钉钉的例子来给大家实现下,测试完毕,自动推送测试结果。
钉钉群有一个智能助手,我们去点击,
选择添加机器人
选择自定义。
输入名称,点击完成,就完成了添加机器人。
完成后呢,给你一个地址,要复制出来这个地址,一会发送消息用。
最后 完成后,我们可以看到这个机器人。
那么我们在https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 可以看到具体的使用方法。
注,钉钉优化了机器人,这里我安全设置的关键词给改成了测试报告,我们可以根据我们想法去设置我们的机器人。我们看下我们的钉钉机器人的发送代码。
import requestsimport jsondef sendmessage(cont): message={ "msgtype": "text", "text": { "content": cont } } url="自己的钉钉url" headers = { 'Content-Type': 'application/json' } requests.post(url=url,data=json.dumps(message),headers=headers)if __name__=="__main__": sendmessage("测试报告")
发送完毕后:
这样就完成了 钉钉机器人的封装。那么我们对原来的代码进行改造
import requestsimport unittestfrom config import baseurlfrom readtxt import getimport ddtfrom HTMLTestRunnerCN import HTMLTestReportCNfrom senddingtalk import sendmessagerestlue=get()@ddt.ddtclass Testcase(unittest.TestCase): def tearDown(self) -> None: pass def setUp(self) -> None: pass @ddt.data(*restlue) def testone(self,restlue): url = baseurl + restlue['url'] response = requests.request(restlue['method'], url, data=restlue['data'], headers=eval(restlue['headers'])) self.assertTrue(restlue['assert'] in response.text)if __name__=="__main__": import os suit=unittest.TestSuite() loader = unittest.TestLoader() suit.addTests(loader.discover(os.getcwd())) filePath = 'report.html' fp = open(filePath, 'wb') runner = HTMLTestReportCN( stream=fp, title='Test Report', description='Test Report' ) runner.run(suit) fp.close() sendmessage("接口自动化测试完毕,测试报告已经生成,")
注:测试用例请从前面的文章获取,前面文章的代码上面进行优化的。
执行完毕,我们看下钉钉的消息。
这就是一个简单的通知,大家可以根据自身业务进行定制。
关注雷子说测试,后续分享更多,更有用的文章给大家。