注:有很多命令在windows的命令行下无法使用,推荐先在windows系统上安装Git Bash工具(下载地址),所有的命令行操作都在该工具下运行。
一、搭建mocha测试环境
mocha是node.js下常用的测试框架。其安装步骤如下:
1)到node.js的网站上点击最显眼的绿色的图标“install”下载安装文件
2)下载后,双击该安装文件安装node.js
3)到命令行下输入 “node -v” ,如果会打印出node的版本信息,则node安装成功
4)在命令行下输入 “sudo npm -g install mocha”以global的方式安装mocha
(windows系统不识别sudo,可忽略sudo)
5)在命令行下输入 “mocha -h” ,如果会输出帮助信息,则mocha安装成功
6)新建一个文件夹,如命名为mocha-test,在该文件夹下新建一个package.json文件,package.json里的内容如下:
1 { 2 "name": "Inkie_test", 3 "version": "0.0.1", 4 "description": "testcases of Inkie", 5 "main" : "index.js", 6 "scripts":{ 7 "test":"" 8 }, 9 "dependencies" : {10 "selenium-webdriver" : "~2.35.0",11 "chai" : "~1.8.1"12 }13 }
在命令行下切换到mocha-test目录,输入命令“sudo npm install”下载package.json里描述的依赖,然后该文件夹下会多出一个名为node_modules的文件夹。
7)安装firefox浏览器
8)(mac请忽略此步骤)把firefox浏览器的路径加到系统环境变量中,如果在命令行中能用start firefox命令启动火狐浏览器,则windows系统环境变量添加成功。
二、启动selenium server
1)在上下载selenium-server-standalone-2.36.0.jar(版本信息可能不同)
2)在命令行下输入“java -jar selenium-server-standalone-2.36.0.jar”以启动服务(没装Java的要先装Java)。
三、测试实例
以下是用BDD写的一个测试示例test.js,该测试的目的是打开google主页,搜索mocha,并检查搜索结果网页的title是否含有mocha关键字。
1 var should = require('chai').should(); 2 var webdriver = require('selenium-webdriver'); 3 var By = webdriver.By; 4 5 var builder = new webdriver.Builder().usingServer("http://127.0.0.1:4444/wd/hub"); 6 builder.withCapabilities({ browserName : "firefox" }); 7 var driver = builder.build(); 8 9 describe ('first test', function () {10 beforeEach(function () {11 driver.get('http://www.google.com');12 });13 14 afterEach(function () {15 driver.close();16 driver.quit();17 });18 19 it('should have correct title', function (done) {20 driver.findElement(By.css('#lst-ib')).sendKeys('mocha');21 driver.findElement(By.css('[name="btnK"]')).click();22 driver.sleep(3000);23 driver.getTitle().then(function (title) {24 title.should.contain('mocha');25 done();26 });27 });28 });
在命令行中切换到测试目录,如本例中新建的mocha-test目录,输入以下命令以启动测试:
mocha -t 30000 -R spec test.js
该命令中的"-t 30000"是设置一个测试用例(一个it函数表示一个测试用例)运行的时间不超过30秒,"-R spec"是设置测试结果的输出格式。关于mocha运行测试的更多参数不再赘述。