• 框架选择
    • Super Test:基本的HTTP请求,返回判断
    • Chai:对返回的结果进行判断
    • grunt:集成jenkins
    • grunt-mocha-test:grunt任务
  • Jenkins环境配制
    • 使用Jenkins调度mochaTest任务,并配制结果输出相关

    • 执行环境配制
      • 多个环境之间的自动切换:export NODE_ENV=dev && cd api-test && grunt
    • PS:若需要指定地址执行时,仅需要把local修改需要的目标地址即可
  • 小样例
    • 测试:访问http://www.baidu.com时,返回的状态码是否为200(成功)

      • 修改endpoints.js中local地址为:http:www.baidu.com
      • 修改Gruntfile.js中src为:test/module/demo.js
      • 在module目录下新创建文件demo.js
        1. var config = require('../config/endpoints'),
        2. request = require('supertest')(config.host[config.env]);
        3.  
        4. describe('测试访问baidu首页.', function() {
        5. it('返回状态码为200.', function(done) {
        6. request.get('/')
        7. .expect(200)
        8. .end(done);
        9. });
        10.  
        11. });
      • 进入到api-test目录,运行grunt
        1. api-test git:(master) grunt
        2. Running "mochaTest:test" (mochaTest) task
        3.  
        4. 测试访问baidu首页.
        5. 返回状态码为200. (958ms)
        6.  
        7. passing (964ms)
        8.  
        9. Done, without errors.
    • 测试(失败):访问http://www.baidu.com时,返回的状态码是否为201
      • 修改demo.js文件
        1. var config = require('../config/endpoints'),
        2. request = require('supertest')(config.host[config.env]);
        3.  
        4. describe('测试访问baidu首页.', function() {
        5. it('返回状态码为200.', function(done) {
        6. request.get('/')
        7. //此处失败
        8. .expect(201)
        9. .end(done);
        10. });
        11.  
        12. });
      • 执行测试:grunt
        1. api-test git:(master) grunt
        2. Running "mochaTest:test" (mochaTest) task
        3.  
        4. 测试访问baidu首页.
        5. ) 返回状态码为200.
        6.  
        7. passing (2s)
        8. failing
        9.  
        10. ) 测试访问baidu首页. 返回状态码为200.:
        11. Error: expected "Created", got "OK"
        12.  
        13. Warning: Task "mochaTest:test" failed. Use --force to continue.
        14.  
        15. Aborted due to warnings.
      • 分析:expect(201)为期待的状态码为201,但实际返回的状态码为200。此处可为测试的验证点
  • 强化
    • 一次执行N个js文件

      • 修改Gruntfile.js中src即可
    • 设置请求的header
        1. request.get('/')
        2. .set('Content-Type','application/json')
    • 设置post请求的数据
        1. request
        2. .post('/post/data')
        3. .send({
        4. "A": 1,
        5. "B": 2
        6. })
    • 对expect进行调整:如预期返回body中totalCount为6
        1. .expect(function(res){
        2. //返回中totalCount为6
        3. if (!(res.body.totalCount.should.equal(6))) throw new Error("总数不对");
        4. })

总结-测试规划

  • 一个js文件针对单个接口请求进行测试
  • 一个it仅测试一个接口功能
  • 按文件夹来划分功能模块,按js文件来划分API请求

API测试-Super Test的更多相关文章

  1. API测试

    API(Application Programming Interface)包含: 单元测试(Unit Testing).模块测试(Module Testing).组件测试(Component Tes ...

  2. 使用python+pychram进行API测试(接口测试)初级STEP 1

    花了一天时间安装了解了下最基本的python+pychram进行API测试,下面这个可以指导自己以后入门:基本的开发级别还需要学习 1.python下载地址:https://www.python.or ...

  3. Chrome Restful Api 测试工具 Postman-REST-Client离线安装包下载,Axure RP Extension for Chrome离线版下载

    [Postman for Chrome 离线下载] Postman-REST-Client离线安装包,可直接在Chrome浏览器本地安装使用,可模拟各种http请求,Restful Api测试, CS ...

  4. 接口API测试和返回值JSON解析的插件

    火狐插件1.   HttpRequest作用:接口API测试例子:http://192.168.10.61:8080/ZHCS/user/loginApp.do?phone=admin&pwd ...

  5. asp.net web api 测试帮助页面建立并测试

    asp.net web api 测试帮助页面建立并测试 现在使用WEB API来开发,越来越流行. 在开发过程中的测试调试,可以使用Fiddler等工具来帮助测试外,还有: 在asp.net 中有种方 ...

  6. Aliexpress API 测试工具

    Aliexpress API 测试工具 上回简单说了 Aliexpress API 的认证流程, 这回在奉送一个小工具, API 测试工具. 点我下载 做这一行,和做程序员的生活完全不搭调, 格格不入 ...

  7. API测试自动化——基于CDIF的SOA基本功能(实例篇)

    今天我们通过一些实例来体验一下API的自动化测试,感受一下基于CDIF的SOA的一些基本功能. 传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的 ...

  8. 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到

    Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...

  9. 开源API测试工具 Hitchhiker v0.5更新 - 完善细节

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Ap ...

  10. 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...

随机推荐

  1. js 什么是变量的提升?

  2. centos 安装 nginx

    采用版本 nginx-1.9.8.tar.gz yum -y install pcre-devel yum -y install openssl openssl-devel tar –zxvf ngi ...

  3. Angularjs学习笔记(五)----显示和格式化数据

    一.引用指令 在AngularJS的文档中,所有指令的名字以驼峰命名法.而在模板中,则需要以蛇形命名法.可以以冒号分割(ng:model)或下划线分割(ng_model),更常见的是以ng-model ...

  4. C语言乱谈(一) 20行代码生成BMP

    在学习图形图像的过程中,最简单和常见的格式是BMP和PPM.下面将给出生成BMP的极度精简代码,然后讲解BMP格式. #include <stdio.h> #include <std ...

  5. ng-repeat产生的对象会带有$$hashkey属性处理方法

    angularJS在ng-repeat的时候会产生一个$$hashkey的属性向后台发送请求的时候需要转成JSON的string格式(如果是使用ng自带的$http服务的话可以无视,$http服务会自 ...

  6. erlang,elixir安装

    erlang下载地址:https://packages.erlang-solutions.com/erlang/ elixir(precompile版)下载地址:https://github.com/ ...

  7. zabbix nagios 类nagios 之 不以性能为前提的开发和监控都是瞎扯淡

    从最初的nagios到现在强大的zabbix 3.0,我想说,不以性能为前提的开发和监控都是瞎扯淡? 首先我对这两款监控软件的认识: zabbix,很多企业都在用,给人的感觉是很炫,不过我个人觉得虽然 ...

  8. POJ 2010 Moo University - Financial Aid treap

    按第一关键字排序后枚举中位数,就变成了判断“左边前K小的和 + 这个中位数 + 右边前K小的和 <= F",其中维护前K小和可以用treap做到. #include <cstdi ...

  9. touchstart,touchmove判断手机中滑屏方向

    滑动屏幕    touchstart:接触屏幕时触发,touchmove:活动过程触发,touchend:离开屏幕时触发 首先获取手接触屏幕时的坐标X,Y //获取接触屏幕时的X和Y$('body') ...

  10. 云端卫士实战录 | Java高级特性之多线程

    <实战录>导语 一转眼作为一名Java开发者已经四年多时间了,说长不长说短不短,对于java的感情还是比较深的,主要嘛毕竟它给了我饭吃.哈哈,开个玩笑.今天我想借此机会来和大家聊聊Java ...