HttpRunner3.X學習筆記(11)接口測試持續(xù)集成化

當我們的接口測試用例腳本達到一定的數(shù)量后,就要想辦法持續(xù)集成化,持續(xù)集成的好處可以根據(jù)我們的觸發(fā)策略來構建相應的用例,譬如:定時構建、版本發(fā)布定時構建。本文采取的持續(xù)集成方案還是主流的Jenkins搭配github的方式。

主要思路

  • 代碼倉庫保存api測試代碼
  • Jenkins拉取代碼
  • shell命令構建代碼
  • 執(zhí)行后生成allure報告
  • 執(zhí)行失敗或異常推送企業(yè)微信

Jenkins配置

倉庫拉取配置

image.png

構建定時配置

image.png

執(zhí)行腳本配置

image.png
  • 激活python虛擬環(huán)境
  • 切換測試環(huán)境變量
  • 執(zhí)行指定腳本,并生成allure報告

生成測試報告

image.png

失敗觸發(fā)通知

image.png

腳本說明

觸發(fā)通知接口實現(xiàn)

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">運行環(huán)境:{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">運行環(huán)境:{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

觸發(fā)通知接口調用

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測試環(huán)境",
  "job": "apitest-dlvopenapi",
  "template":"api"
}'
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容