macaca是阿里巴巴用nodejs写的一个自动化测试框架
兼顾移动端和web端测试
它有三个版本,nodejs,python,java 三种
下面说说nodejs版本&web端的场景的用法
实际上启动相当简单
既然说了基于nodejs环境,那么肯定要先给你的电脑配上Node的环境啦。
1.使用自带的npm包管理工具去下载macaca源码
npm install macaca
2.下载webdriver模块
npm install webdriver-client(测试必备的插件)
3.如果要查看脚本执行效果,那么还需要下载chromeWebdriver下载方法就不说了,一样的
4.下载macaca-electron驱动(还不知道要来干嘛的,听说是必备模块)
5.在测试目录建一个“macaca-test”的目录
6.在目录下写上一下test demo(测试用例语法跟mocha是一样的)
'use strict';
var wd = require('webdriver-client')({ platformName: 'desktop',
browserName: 'electron'
});
describe('macaca desktop sample', function() {
this.timeout(5 * 60 * 1000);
const driver = wd.initPromiseChain();
const initialURL = 'https://www.baidu.com'; before(() => { return driver
.initDriver()
.maximize()
.setWindowSize(1280, 800);
});
it('#0 should go into macaca', function() {
return driver .get(initialURL) .sleep(3000);
});
it('#1 should works with macaca', function() {
return driver .elementById('kw') .sendKeys('macaca')
.sleep(3000)
.elementById('su')
.click() .sleep(5000)
.source()
.then(function(html) { html.should.containEql('macaca'); }) .hasElementByCss('#head > div.head_wrapper') .then(function(hasHeadWrapper) { hasHeadWrapper.should.be.true(); }) .elementByXPathOrNull('//*[@id="kw"]') .sendKeys(' elementByXPath') .sleep(3000)
.elementById('su')
.click() .sleep(5000)
.takeScreenshot();
});
it('#2 should go into web', function() {
return driver .get(initialURL)
.sleep(3000);
});
it('#3 should works with web', function() {
return driver
.elementById('kw') .sendKeys('TesterHome') .sleep(3000) .elementById('su') .click() .sleep(5000) .source()
.then(function(html) { html.should.containEql('TesterHome');
}) .takeScreenshot();
});
after((done) => {
return driver .quit(done);
});
});
7.启动脚本,执行命令:
macaca run(默认运行macaca-test目录下的所有脚本)
macaca run -o(运行目录下的脚本之余会将执行结果以html文件形式保存到根目录)
讲完