Nightmare基于phantomjs的自动化测试套件

简介:

今天将介绍一款自动化测试套件名叫nightmare,他是一个基于phantomjs的测试框架,一个基于phantomjs之上为测试应用封装的一套high level API。其API以goto, refresh, click, type…等简单的常用e2e测试动作封装,使得其语义清晰,简洁。其官方在http://www.nightmarejs.org/.

如果你的项目测试不需要想需求和测试人员理解,那么基于nightmare测试或许是一个好的选择,你的降低测试代码的成本,以及测试套件的部署。我们可以选择基于jasmine-node等作为测试套件集成。

安装nightmare:

npm install nightmare

下面我们对比与远程phantomjs的对比:

原phantomjs的代码:

phantom.create(function (ph) {
  ph.createPage(function (page) {
    page.open('http://yahoo.com', function (status) {
      page.evaluate(function () {
        var el =
          document.querySelector('input[title="Search"]');
        el.value = 'github nightmare';
      }, function (result) {
        page.evaluate(function () {
          var el = document.querySelector('.searchsubmit');
          var event = document.createEvent('MouseEvent');
          event.initEvent('click', true, false);
          el.dispatchEvent(event);
        }, function (result) {
          ph.exit();
        });
      });
    });
  });
});

nightmare代码:

new Nightmare()
  .goto('http://yahoo.com')
  .type('input[title="Search"]', 'github nightmare')
  .click('.searchsubmit')
  .run();

一切显而易见,不用多说。

nightmare同时也支持插件方式抽取公用逻辑,以供复用和提高测试代码语意,如下例子:

/**
 * Login to a Swiftly account.
 *
 * @param {String} email
 * @param {String} password
 */

exports.login = function(email, password){
  return function(nightmare) {
    nightmare
      .viewport(800, 1600)
      .goto('https://swiftly.com/login')
        .type('#username', email)
        .type('#password', password)
        .click('.button--primary')
      .wait();
  };
};

使用代码很简单:

var Swiftly = require('nightmare-swiftly');
new Nightmare()
  .use(Swiftly.login(email, password))
  .use(Swiftly.task(instructions, uploads, path))
  .run();



本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/p/4111312.html,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
Java C++ Spring
Spring Boot - 用JUnit 5构建完美的Spring Boot测试套件
Spring Boot - 用JUnit 5构建完美的Spring Boot测试套件
62 0
|
7月前
|
前端开发 测试技术 BI
SAP UI5 的自动化测试套件页面的开发步骤介绍
SAP UI5 的自动化测试套件页面的开发步骤介绍
51 0
|
7月前
|
Web App开发 前端开发 测试技术
SAP UI5 应用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍试读版
SAP UI5 应用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍试读版
30 0
|
11月前
|
JavaScript 前端开发 机器人
「RPA 」UiPath和Selenium,谁是测试套件?
「RPA 」UiPath和Selenium,谁是测试套件?
|
11月前
|
测试技术
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
201 0
|
11月前
|
测试技术 数据安全/隐私保护
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(上)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等
526 0
|
11月前
|
前端开发 JavaScript 中间件
前端测试套件构建实践
为了提升前端的开发效率,同时也为了减少前端编写单元测试代码的繁琐工作,testus测试套件旨在为前端测试开发工作提供便利,本文旨在介绍testus的一些设计理念及实现方案,希望能给前端基础建设中有关于测试构建相关工作的同学提供一些帮助和思路。
34 0
|
测试技术
unittest使用parameterized参数化后如何调用添加到测试套件中
unittest使用parameterized参数化后如何调用添加到测试套件中
114 0
unittest使用parameterized参数化后如何调用添加到测试套件中
|
前端开发 测试技术 BI
|
Linux Android开发 芯片
RK3568开发笔记(二):入手RK3568开发板的套件介绍、底板介绍和外设测试
RK3568开发笔记(二):入手RK3568开发板的套件介绍、底板介绍和外设测试
RK3568开发笔记(二):入手RK3568开发板的套件介绍、底板介绍和外设测试

热门文章

最新文章