HttpRunner3.X学习笔记(11)接口测试持续集成化

本文介绍了使用Jenkins和GitHub进行API接口测试的持续集成流程。通过配置仓库拉取、定时构建及脚本执行,实现了测试报告的生成与异常时的企业微信通知。在测试脚本执行失败或出现异常时,系统会自动向指定人员发送详细的通知信息,确保团队能及时了解构建状态。
摘要由CSDN通过智能技术生成

当我们的接口测试用例脚本达到一定的数量后,就要想办法持续集成化,持续集成的好处可以根据我们的触发策略来构建相应的用例,譬如:定时构建、版本发布定时构建。本文采取的持续集成方案还是主流的Jenkins搭配github的方式。

主要思路

  • 代码仓库保存api测试代码
  • Jenkins拉取代码
  • shell命令构建代码
  • 执行后生成allure报告
  • 执行失败或异常推送企业微信

Jenkins配置

仓库拉取配置

image.png

构建定时配置

image.png

执行脚本配置

image.png

  • 激活python虚拟环境
  • 切换测试环境变量
  • 执行指定脚本,并生成allure报告

生成测试报告

image.png

失败触发通知

image.png

脚本说明

触发通知接口实现

class APITestRobotView(APIView):
    def post(self, request, *args, **kwargs):
        job_name = request.data.get("job", "未填写")
        tester = request.data.get("tester", "曹立品")
        tester_ = settings.NAME_OF_ID.get(tester,tester)
        test_env = request.data.get("env", "test92")
        message_template = request.data.get("template", "api")
        hook = request.data.get("hook",
                                "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1701dfba-c653-4a91-aaf2-a4eedd6eb3f3")

        api_content = f"API接口测试自动化构建<font color=\"warning\">异常</font>通知,请相关同事注意。 \n\n" \
                      f">项目名称:{job_name} \n " \
                      f">运行环境:{test_env} \n " \
                      f">跟踪人负责人:{tester} \n" \
                      f"[详情点击](http://192.168.1.99:8021)\n" \
                      f"<@{tester_}>"

        ui_content = f"UI测试自动化构建<font color=\"warning\">异常</font>通知,请相关同事注意。 \n\n" \
                     f">项目名称:{job_name} \n " \
                     f">运行环境:{test_env} \n " \
                     f">跟踪人负责人:{tester} \n" \
                     f"[详情点击](http://192.168.1.99:8021)\n" \
                     f"<@{tester_}>"

        if message_template == 'api':
            default_content = api_content
        else:
            default_content = ui_content

        # 构建message
        markdown_content = request.data.get("content", default_content)
        content = {
            "msgtype": "markdown",
            "markdown": {
                "content": markdown_content
            }
        }

        resp = requests.post(url=hook, json=content)
        return Response(resp.json())

if __name__ == '__main__':
    pass

触发通知接口调用

curl -X "POST" "http://192.168.1.99:8000/robot/apimessage/" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "tester": "tester",
  "hook": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1701dfba-c653-4a91-aaf2-a4e2cd6eb3f3",
  "env": "92测试环境",
  "job": "apitest-dlvopenapi",
  "template":"api"
}'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值