美文网首页自动化
HttpRunner3.X学习笔记(11)接口测试持续集成化

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

作者: 是立品啊 | 来源:发表于2021-03-31 11:26 被阅读0次

    当我们的接口测试用例脚本达到一定的数量后,就要想办法持续集成化,持续集成的好处可以根据我们的触发策略来构建相应的用例,譬如:定时构建、版本发布定时构建。本文采取的持续集成方案还是主流的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"
    }'
    

    相关文章

      网友评论

        本文标题:HttpRunner3.X学习笔记(11)接口测试持续集成化

        本文链接:https://www.haomeiwen.com/subject/ffpohltx.html