在前面的几篇文章中,
postman接口用例转化为python自动化测试用例(二)
postman接口用例转化为python自动化测试用例(三)
四篇文章,从复制postman 请求到自动化测试用例,到引入ddt数据驱动,做了很好的实践,那么这篇文章呢,进行一个测试后的,测试通知功能。其实我们都知道,自动化 不能简单的只停留在自动化执行,我们还要自动化的去告知测试完毕,甚至 自动发送测试报告。这里我举一个简单的例子,现在很多公司 办公都用钉钉,那么我就用钉钉的例子来给大家实现下,测试完毕,自动推送测试结果。
钉钉群有一个智能助手,我们去点击,
选择添加机器人
选择自定义。
输入名称,点击完成,就完成了添加机器人。
完成后呢,给你一个地址,要复制出来这个地址,一会发送消息用。
最后 完成后,我们可以看到这个机器人。
那么我们在https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 可以看到具体的使用方法。
注,钉钉优化了机器人,这里我安全设置的关键词给改成了测试报告,我们可以根据我们想法去设置我们的机器人。我们看下我们的钉钉机器人的发送代码。
import requests
import json
def 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 requests
import unittest
from config import baseurl
from readtxt import get
import ddt
from HTMLTestRunnerCN import HTMLTestReportCN
from senddingtalk import sendmessage
restlue=get()
@ddt.ddt
class 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("接口自动化测试完毕,测试报告已经生成,")
注:测试用例请从前面的文章获取,前面文章的代码上面进行优化的。
执行完毕,我们看下钉钉的消息。
这就是一个简单的通知,大家可以根据自身业务进行定制。
关注雷子说测试,后续分享更多,更有用的文章给大家。