基于Jmeter与Python,做一个简单的接口自动化测试方案(三)


按照上节配置完环境后,执行ant构建命令,则会在results目录下生成结果文件testreport.html和.jtl文件。
这节讲两个结果文件的处理。


配置文件的构成

如前文所说,此方案设计为一个接口测试的项目为服务器上一个独立的目录。而每个项目报错时需要发送的钉钉群、邮箱组不同。报告展示的服务器也有可能会更换,所以最好将这些信息抽离出来放到配置文件中。
config.json

{
   
  "urls": ["钉钉群的token1", "钉钉群的token2"],
  "mail_receiver": ["xxx@xx.com", "yyy@qq.com"],
  "working_d": "/xxx/xxx"
  "reports_d": "报告展示在服务器上路径",
  "atMobiles": ["170xxxxxxxx", "183yyyyyyyy"],
  "server_url": "http://xxx.xxx.xxx.xxx/reports/",
  "send_flag": 0, 
  "project_name": "project_name"
}
  • urls:钉钉群token的列表。
  • mail_receiver: 接受邮件邮箱的列表。
  • working_d: 需要处理的报告所在目录。即当前目录。
  • reports_d:报告展示服务在linux上的目录 如/usr/xxx/reports 此目录应为一个服务器指定的资源存放目录。
  • atMobiles:钉钉通知时需要at的人。
  • server_url: 展示报告的部分url,需要和实际报告xxx.html在程序中拼接。
  • send_flag: 置为1时报告始终发送,置为0时按实际情况发送。1一般为调试时使用。
  • project_name: 邮件中的标题会使用。
html文件的处理

html文件处理逻辑比较简单:如果文件内有接口报错信息,则发送信息到钉钉群&发送邮件给指定对象。 随后将html文件移动到一个对外展示的web服务器目录下。
如果没有错误,则直接删除html文件。
(html文件和jtl文件处理完都需要删除,因为jmeter对结果文件是追加写入的,如果不删除则会不断往文件中写入下一次测试的结果)
发送邮件的代码比较简单,因为我用的邮箱服务为阿里云邮箱,可以直接参考 阿里的smtp文档.

钉钉发送报错部分代码如下:

class Ding:
    def __init__(self, new_tr):
        with open('config.json') as f:
            self.temp = json.loads(f.read())
        self.url = self.temp['urls']
        self.header = {
   'Content-Type': 'application/json; charset=utf-8'}
        self.working_d = self.temp['working_d']
        self.new_tr = new_tr
        self.reports_d = self.temp['reports_d']
        self.atMobiles = self.temp['atMobiles']
        self.server_url = self.temp['server_url']
        self.send_flag = self.temp['send_flag']    #如需不管有没有错误始终发送报告,该字段为1 即可

    def run(self,):
        with open(self.new_tr, encoding='utf-8') as f:
            temp1 = f.read()
        p = r'<div class="failure">([^<]+)</div>'     #正则,有错误的行
        q = re.findall(p, temp1)
        if (len(q) > 0) or self
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值