• API测试-Super Test


    • 框架选择
      • 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 
           5 describe('测试访问baidu首页.', function() {
           6     it('返回状态码为200.', function(done) {
           7         request.get('/')
           8             .expect(200)
           9             .end(done);
          10     });
          11 
          12 });
        • 进入到api-test目录,运行grunt
        • ➜  api-test git:(master) ✗ grunt
          Running "mochaTest:test" (mochaTest) task
          
          
            测试访问baidu首页.
              ✓ 返回状态码为200.       (958ms)
          
          
            1 passing (964ms)
          
          
          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 
           5 describe('测试访问baidu首页.', function() {
           6     it('返回状态码为200.', function(done) {
           7         request.get('/')
           8              //此处失败
           9             .expect(201)
          10             .end(done);
          11     });
          12 
          13 }); 
        • 执行测试:grunt
        • ➜  api-test git:(master) ✗ grunt
          Running "mochaTest:test" (mochaTest) task
          
          
            测试访问baidu首页.
              1) 返回状态码为200.
          
          
            0 passing (2s)
            1 failing
          
            1) 测试访问baidu首页. 返回状态码为200.:
               Error: expected 201 "Created", got 200 "OK"
            
          
          
          
          Warning: Task "mochaTest:test" failed. Use --force to continue.
          
          Aborted due to warnings.
        • 分析:expect(201)为期待的状态码为201,但实际返回的状态码为200。此处可为测试的验证点
    • 强化
      • 一次执行N个js文件
        • 修改Gruntfile.js中src即可
      • 设置请求的header
        • request.get('/')
                  .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
        • .expect(function(res){
               //返回中totalCount为6
               if (!(res.body.totalCount.should.equal(6))) throw new Error("总数不对");
            })

    总结-测试规划

    • 一个js文件针对单个接口请求进行测试
    • 一个it仅测试一个接口功能
    • 按文件夹来划分功能模块,按js文件来划分API请求
  • 相关阅读:
    14章 InnoDB存储引擎
    archer配置LDAP
    月薪过万的90后,爱情却败给了房子
    postgresql 只改一行就获得100倍性能提升
    数据库优化方面
    greenplum command center gpcc安装文档
    centos6.9 greenplum5.3离线部署文档
    max_prepared_transactions设置不正确时的症状
    MySQL事务隔离级别详解
    激活Windows office jetbrain pycharm goland idea clion
  • 原文地址:https://www.cnblogs.com/s380774061/p/4814756.html
Copyright © 2020-2023  润新知