使用Mocha+spectron测试Electron打包的桌面版程序(1)

当前多是浏览器和移动App产品,其相应测试工具也较多,桌面版程序的自动化测试工具较少,本文就介绍一下如何使用Electron的官方测试工具spectron进行Electron打包的桌面版程序的自动化测试。
Electron打包的桌面版程序其实也是一个web的页面,只是加了一个Electron外壳,把web页面给包起来。详细读者可自行了解Electron,本文不多做介绍。
1. 安装环境
(1)安装Nodejs,网上资料较多,自行百度安装
(2)全局安装mocha,网上资料较多,如果失败,自行百度解决

npm -g install mocha
  1. IDE,与其说是IDE不如说是编辑器,这里建议使用VSCode,轻量级
  2. 某个目录下新建一个文件夹,开始写代码了
    这里贴上该工具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模型以及如何输出一份测试报告

你可能感兴趣的:(自动化测试)