-
Notifications
You must be signed in to change notification settings - Fork 72
Use protractor to run e2e test
命令行执行:
npm install protractor -g
npm会自动安装在:
C:\Users\你的用户名\AppData\Roaming\npm\node_modules\protractor
前提:selenium服务需要jdk运行环境,所以本地要先把jdk安装一下
命令行执行:
webdriver-manager update
中兴内网要加代理:
webdriver-manager --proxy http://proxy.zte.com.cn:80 update
下载完成后,可以在protractor目录下的看到selenium服务和chrome驱动:
\node_modules\webdriver-manager\selenium
然后命令行启动selenium服务:
webdriver-manager start
在你的项目根目录下新建文件 protractor.conf.json
-
specs,要测试的e2e文件地址
-
baseUrl,访问测试网页url,后面e2e的url都会自动加上此url
-
framework,e2e测试的语言框架
-
capabilities,配置浏览器驱动
-
multiCapabilities,配多个浏览器驱动信息
-
……
jigsaw的protractor配置https://github.com/rdkmaster/jigsaw/blob/master/protractor.conf.js
protractor的更多配置信息可以参考https://github.com/angular/protractor/blob/master/lib/config.ts
我们的e2e测试用例采用的是jasmine框架;
jasmine语法可以参考https://jasmine.github.io/edge/introduction
有外网条件的同学可以访问http://www.protractortest.org/#/api
这主要由于本地的网络环境不稳定引起的,此时你可以再执行一次 webdriver-manager update
,如果运气好的话,你可以下到update-config.json文件。如果你下不到,就按照下面的操作来吧:
step-1:打开
C:\Users\你的用户名\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\selenium
step-2:新建update-config.json文件,把下面的内容粘贴进去
{
"chrome": {
"last": "C:\\Users\\你的用户名\\AppData\\Roaming\\npm\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\chromedriver_2.33.exe",
"all": [
"C:\\Users\\你的用户名\\AppData\\Roaming\\npm\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\chromedriver_2.33.exe"
]
}
}
注意修改你的用户名和chromedriver的版本
events.js:183
throw er; // Unhandled 'error' event
^
Error: getaddrinfo EAI_AGAIN chromedriver.storage.googleapis.com:443
at Object._errnoException (util.js:1022:11)
at errnoException (dns.js:55:15)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
events.js:183
throw er; // Unhandled 'error' event
^
Error: getaddrinfo EAI_AGAIN selenium-release.storage.googleapis.com:443
at Object._errnoException (util.js:1022:11)
at errnoException (dns.js:55:15)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
解决方法:在浏览器打开对应的url,把xml拷贝到本地;
另一个解决办法:不用执行webdriver-manager start,直接执行protractor,protractor会判断是否有webdriver server,没有时,protractor会自动帮我们启动。