当前多是浏览器和移动App产品,其相应测试工具也较多,桌面版程序的自动化测试工具较少,本文就介绍一下如何使用Electron的官方测试工具spectron进行Electron打包的桌面版程序的自动化测试。
Electron打包的桌面版程序其实也是一个web的页面,只是加了一个Electron外壳,把web页面给包起来。详细读者可自行了解Electron,本文不多做介绍。
- 安装环境
(1)安装Nodejs,网上资料较多,自行百度安装
(2)全局安装mocha,网上资料较多,如果失败,自行百度解决
npm -g install mocha
- IDE,与其说是IDE不如说是编辑器,这里建议使用VSCode,轻量级
- 某个目录下新建一个文件夹,开始写代码了
这里贴上该工具GitHub的链接
https://github.com/electron/spectron
下面是官方给的案例代码
var Application = require('spectron').Application
var assert = require('assert')
describe('application launch', function () {
this.timeout(10000)//程序启动的延时
beforeEach(function () {//mocha的钩子函数,类似testNG的注解,想了解更多,自行百度
this.app = new Application({
path: '/Applications/MyApp.app/Contents/MacOS/MyApp'//写你测试需要的桌面版程序路径,如:'C:/Program Files (x86)/GF-Global/yourApp.exe'
})
return this.app.start()
})
afterEach(function () {
if (this.app && this.app.isRunning()) {
return this.app.stop()
}
})
it('shows an initial window', function () {
return this.app.client.getWindowCount().then(function (count) {
assert.equal(count, 1)
})
})
})
在此补充几点:spectron的API可以在https://github.com/electron/spectron此链接中找到
其余定位元素、操作的API在此链接http://webdriver.io/
定位元素Selector的写法在上面链接中Developer Guide中http://webdriver.io/guide/usage/selectors.html
4. 把官方Demo跑起来
将上面代码复制到你的txt中,改名未a.js,如下图所示:
5. 使用cmd,切到该目录,输入cnpm install spectron(cnpm跟npm功能一样,cnpm是使用镜像安装,在安装nodejs环境的时候建议吧cnpm装上,这样就不会出现一些因网络原因安装失败的问题),如下图:
6. 运行demo
在当前目录下,输入mocha a,如下图所示:
这个demo的运行现象就是,打开你要测试的程序,然后计算打开的窗口是不是等于1,然后关闭程序。
7. 今天就先写个引子,后面再详细写如何搭建自动化测试PageObject模型以及如何输出一份测试报告