冒烟测试:也称为E2E测试,本文通过搭建Protractor来实现对AngularJS的前端测试
1.安装Protractor
由于本机已经安装过nodejs和npm,所以可以通过npm直接装
npm install protractor -g
2.更新webdriver-manager
webdriver-manager update
这边遇到墙的问题,报错(需要换镜像),解决方法如下:
在C:\Users\24_do\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\built目录下替换两个镜像源
• "selenium": "http://npm.taobao.org/mirrors/selenium/",
• "chromedriver": "https://npm.taobao.org/mirrors/chromedriver/",
3.安装输出测试报告需要安装相关插件
//输出html报告
npm install protractor-jasmine2-html-reporter -g
//输出junit格式的xml报告
npm install jasmine-reporters -g
//由于需要在config文件中加载。一般把这两个插件放在根目录的node_modules 目录下
4.进入自动化测试项目目录
cd D:\YFZX\Work\2019\Project\E2E
准备两个文件,conf.js和spec.js
其中conf.js:
配置文件中描述了到何处定位测试规范文件 (specs ),Selenium 服务器的地址 (seleniumAddress), 还说明了我们将会使用 Jasmine 版本 2 作为测试框架。其它配置这里使用默认的配置,Chrome 是默认的浏览器。
var Jasmine2HtmlReporter = require('./node_modules/protractor-jasmine2-html-reporter');
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js'],
capabilities:{
'browserName':'chrome'
},
onPrepare: function(){jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({savePath: 'report/e2e/',takeScreenshots: true,takeScreenshotsOnlyOnFailures: true}));}
}
spec.js:
describe('Protractor SDS App', function() {
//把 ElementFinder 保存在变量中进行共享使用。
var a = element(by.css('.login')).$('a')
//var failNoticeMsg = element(by.binding('failNoticeMsg'))
//把导航移到了 beforeEach 中,这个函数会在每一个 it 块之前执行。
beforeEach(function() {
browser.get('https://10.142.151.146');
});
it('Old password error', function() {
a.click();
browser.sleep(1000);
element(by.model('uName')).sendKeys('Testuser1');
element(by.model('oldPassword')).sendKeys('123456');
element(by.model('newPassword')).sendKeys('QETadg_1');
element(by.model('newPassword2')).sendKeys('QETadg_1');
browser.sleep(1000);
element(by.buttonText('保存')).click();
browser.sleep(2000);
expect(element(by.binding('failNoticeMsg')).getText()).toEqual('原始密码错误,请重新输入, E0070113004');
});
});
5.开启服务器
• webdriver-manager start
//默认情况下,Selenium测试服务器接入地址为:http://localhost:4444/wd/hub
6.发起测试
保持上面的命令行窗口运行webdriver-manager start,重新打开另外一个命令行窗口
rotractor 需要两个文件来运行测试,一个测试规范文件spec.js,一个配置文件conf.js
protractor conf.js
7.查看测试报告
测试完成后会生成测试报告
参考资料
https://github.com/angular/protractor
https://www.jianshu.com/p/6dfa3386d837
https://www.jianshu.com/p/87d712be1f62
https://www.cnblogs.com/haogj/p/4815673.html