API自动化测试

作者: kekefund | 来源:发表于2018-07-15 09:19 被阅读705次

    简介

    公司目前用的前后端分离的架构,API接口的稳定性直接影响了与前端团队的沟通效率,前端开发和测试人员都比较熟练的使用Postman来测试API接口。

    API接口的自动化测试有很多方案,但Postman+Newman+Jenkins的组合方案,对于测试人员的学习成本最低,实现起来速度是最快的。

    由于公司目前已经采用Jenkins做自动化部署,因此只需要安装Newman,整个流程即可走通。

    实现步骤如下:

    1. Postman编写测试用例;

    2. 导出到json文件

    3. Newman执行json文件

    4. Jenkins调用newman命令,定时执行或者触发执行

    1,Postman编写测试用例

    Postman is the only complete API development environment, for API developers, used by more than 5 million developers and 100,000 companies worldwide. Postman makes working with APIs faster and easier by supporting developers at every stage of their workflow, and is available for Mac OS X, Windows, and Linux users.

    image

    配置环境变量:


    image

    这里建立了测试环境和生产环境;


    image
    image

    配置好环境变量后,就可以在api请求时用环境变量,方便切换测试环境和生产环境。

    image

    可以直接在Postman中跑测试用例


    image

    如果是临时的API接口测试,到这步就可以了。当然,我们的目的是实现测试自动化,接着往下走。

    2,导出到JSON

    image

    3,添加到github项目

    创建一个github项目,专门存储postman脚本。这是为了方便项目成员在本地提交,跟踪版本。

    image

    4,Jenkins集成

    新建一个自由风格的项目

    image

    配置git

    image

    构建触发器

    image

    每天6点执行一次。

    执行SHELL

    image

    其中 newman是预先安装在系统上的:

    先安装nodejs,再安装newman:

    
    npm install -g newman
    
    

    脚本:

    
    newman --version
    
    newman run Brison.postman_collection.json -e test.postman_environment.json --reporters cli,html,json,junit --reporter-json-export brison_jsonOut.json --reporter-junit-export brison_xmlOut.xml --reporter-html-export brison_htmlOut.html
    
    

    Brison.postman_collection.json是postman请求 collection集合。

    test.postman_environment.json 是环境变量。

    生成brison_jsonOut.json,brison_xmlOut.xml,brison_htmlOut.html

    参考

    https://blog.csdn.net/wanglin_lin/article/details/51959342

    https://www.jianshu.com/p/dd0db1b13cfc

    https://www.getpostman.com/docs/v6/postman/collection_runs/integration_with_jenkins

    https://www.jianshu.com/p/d958fc8bf7a4

    https://www.jianshu.com/p/2c83f2ffbd5e

    https://www.cnblogs.com/lsjdddddd/p/5734531.html

    https://www.jianshu.com/p/9b196c71d1fc

    相关文章

      网友评论

      • cooling2016:你的有些接口依赖session.如果不能从login 返回的session 中提取值,那你在jenkins 中中用newman 就不是很便捷。
        kekefund:是的,需要登录的话实现会更复杂。

      本文标题:API自动化测试

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