API自动化测试与持续集成

发表于:2016-5-17 08:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:巴索罗米杰    来源:51Testing软件测试网采编

  目的
  · 如何使用SuperTest测试框架,进行API测试
  · 如何将API测试与构建工具结合
  · 如何将API测试、构建工具与持续集成结合
  SuperTest
  什么是SuperTest
  To provide a high-level abstraction for testing HTTP,提供一个高级别的HTTP测试
  Github地址:SuperTest
  如何安装
  · 命令
  npm install supertest --save-dev
  · 样例
  describe('Test Demo.', function() {
  it('Visit URL', function(done) {
  request.get('')
  .expect(200)
  .end(done);
  });
  });
  · 样例原理:通过获取请求的结果,对请求结果进行验证。样例中的验证条件为返回的状态码为200。
  自动化API测试:Grunt & Gulp
  Grunt篇
  什么是Grunt
  · The JavaScript Task Runner,JavaScript的构建工具
  · 官网:Grunt
  安装
  · 命令
  npm install -g grunt-cli
  功能分析
  测试目的:请求https://github.com/aimer1124/SuperTestWithGrunt是否能返回状态码200
  使用Github来Clonehttps://github.com/aimer1124/SuperTestWithGrunt.git
  
  · /test/module/demo.js:测试脚本
var config = require('../config/endpoints'),
request = require('supertest')(config.host[config.env]);
describe('Test Demo.', function() {
this.timeout(10000);
it('Visit ' + config.env, function(done) {
request.get('')
.expect(200)
.end(done);
});
});
  · /test/config/endpoints.js:环境配制
module.exports = {
host : {
master: 'https://github.com/aimer1124/SuperTestWithGrunt',
branch: 'https://github.com/aimer1124/SuperTestWithGrunt/tree/differentENV'
},
env: process.env.NODE_ENV || 'master'
};
  · Gruntfile.js:Grunt运行时的命令配制
  · package.json:npm 安装时所需要的包
  · results.txt:执行结果存放文件
  执行
  · 命令:grunt
  · 运行结果
SuperTestWithGrunt git:(master) ? grunt
Running "mochaTest:test" (mochaTest) task
Test Demo.
Visit master (1640ms)
1 passing (2s)
Done, without errors.
  结果分析:Visit master (1640ms)表示测试正常通过;1 passing (2s)表示整个测试所执行的时间和测试所执行的数量
  Gulp篇
  什么是Gulp
  · Automate and enhance your workflow,自动化并且增强你的工作
  · 官网:http://gulpjs.com/
  · 中文官网:http://www.gulpjs.com.cn/
  安装
  · 命令
  npm install --global gulp-cli
  功能分析
  测试目的:请求http://aimer1124.github.io/是否能返回状态码200
  使用Github来Clonehttps://github.com/aimer1124/SuperTestWithGulp
  
  · /test/config/endpoints.js:环境配制
  var host = {
  master: require('./master.js'),
  branch: require('./branch.js')
  };
  var ENV;
  module.exports = function(env) {
  if (env) {
  ENV = host[env];
  return;
  }
  return ENV;
  };
  · /test/config/master的具体配制
  module.exports = {
  url: 'http://aimer1124.github.io/',
  name: 'master'
  };
  · /test/module/test-demo.js:测试脚本
  var data = require('../config/endpoints'),
  request = require('supertest')(data().url);
  describe('Test Demo.', function() {
  this.timeout(10000);
  it('Visit ' + data().url, function(done) {
  request.get('')
  .expect(200)
  .end(done);
  });
  console.log('You are in ' + data().name);
  });
  gulpfile.js:Grunt运行时的命令配制
  package.json:npm 安装时所需要的包
  results.txt:执行结果存放文件
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号