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

当我们的接口测试用例脚本达到一定的数量后,就要想办法持续集成化,持续集成的好处可以根据我们的触发策略来构建相应的用例,譬如:定时构建、版本发布定时构建。本文采取的持续集成方案还是主流的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"
}'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,846评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,146评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,789评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,656评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,467评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,870评论 3 389
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,500评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,790评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,828评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,628评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,449评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,881评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,077评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,376评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,879评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,089评论 2 338

推荐阅读更多精彩内容