首页 > 代码库 > Nightmare基于phantomjs的自动化测试套件
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 = http://www.mamicode.com/‘github nightmare‘;>
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();
Nightmare基于phantomjs的自动化测试套件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。