F2eTest和uirecorder自动化测试环境部署填坑记录

坑1:尝试部署的时候只在opennode.bat里面填写了两个浏览器,测试通过后再增加其他浏览器,页面上一直不显示。

填坑:需要清空数据库里的`wd_browsers`和`wd_nodes`表,然后重启2008,数据库会重新加载新的节点信息。(此坑的解决方法在视频教程里,无文字版)

 

 

坑2:远程连接问题:在2008启动之后,node暂未启动前,f2etestweb页面可以打开3个浏览器页面。当webdriver云上显示node已经启动之后,f2etestweb页面只能可以打开1个浏览器页面,再多就会报连接错误。如果此时再通过远程桌面去连接2008,f2e上一个页面也打不开了。

填坑:在运行中运行gpedit.msc,在组策略中对位于“计算机配置\策略\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\连接”中,限制连接数量中进行配置;改大一些或者改成999999即可。然后在cmd里输入gpupdate更新一些策略。但据说这样只能维持120天,之后再说吧!

 

坑3:uirecorder 初始化之后,出现JSON解析失败!的错误!

 

 

 填坑:编辑config.json,添加以下认证参数的时候,记得在上一行的结尾处增加一个英文逗号!!!

 

 

 

 

坑5:国内npm节点非常慢,导致安装依赖失败,但是提醒又不明显,导致问题排查难度大。

填坑:

幸运的是,国内有几个镜像站点可以供我们使用,本人在使用 http://www.cnpmjs.org/ 

速度非常快,镜像站会实时更新,为我们节省了好多时间.如何给本机换源呢?

(1)通过 config 配置指向国内镜像源

npm config set registry http://registry.cnpmjs.org //配置指向源 npm info express  //下载安装第三方包

(2)通过 npm 命令指定下载源

npm --registry http://registry.cnpmjs.org info express

(3)在配置文件 ~/.npmrc 文件写入源地址

nano ~/.npmrc   //打开配置文件 registry =https://registry.npm.taobao.org   //写入配置文件

 

坑6:有时候npm会提示找不到..../package.json。

填坑:npm init -f 强制生成该文件,然后再安装其他依赖

 

坑7:更新selenium-server版本后selenium无法启动

填坑:需要修改如下路径为新版本的文件名

 

 

 

坑8:如果系统启动后在selenium  server里报如下端口被占用的错误

 

填坑:把服务器会话设置这里改成是就可以了。

 

 

 

坑8:更新了最新版本的uirecorder之后要增加chai依赖包

填坑:

#npm install chai --save-dev

uirecorder 2.0使用了jwebdriver 2.0,不需要generator,还需要更新一下jwebdriver

#npm install jwebdriver

 

坑9:app下的bat文件编码不是ASI导致启动浏览器时有乱码即执行不成功,使得局域网代理添加失败。

填坑:把bat文件另存为ANSI编码之后解决问题,已建议f2etest作者更新相关文件的编码格式,目前已上传到GitHub。但是我目前通过该方式切换host还是不成功,报API错误。

 

坑10:在浏览器云里打开360浏览器,进入界面后一会就自动注销

填坑:在360se.bat文件的末尾加上:pause,亲测解决!

 

坑11:浏览器安装目录不对导致无法使用uirecorder。

填坑:360浏览器要使用uirecorder进行调用,需要放在C:\360\360se6\Application\360se.exe目录下,把原路径下的360浏览器相关文件复制到该位置,自动化执行成功。

但是360chrome浏览器没有成功。

firefox浏览器需要放在C:\Program Files\Mozilla Firefox\firefox.exe。不能放在C:\Program Files (x86)\Mozilla Firefox\firefox.exe。firefox还有个问题是不支持鼠标movemouse操作,所有相关操作都执行失败,从网上查了一下是firefox本身的问题,firefox团队已经在着手解决,然后到目前已经大半年了问题依然未解决。

 

坑12:本地代理模式切换host只适用于浏览器云,在webdriver云里并不生效.

解释:因为webdriver云并不通过browsers.bat去启动浏览器。在进行自动化测试前,在项目目录(CMD命令执行目录)下新建一个hosts文件,然后启动的测试就是在改hosts下进行的,测试完成自动恢复原hosts。

 

坑12:当webdriver使用多个服务器作为节点的时候,除了主服务器的桌面可在node列表里打开,其他服务器上的节点都无法连接,报错信息如下,导致无法查看自动化的实时运行状态。

错误信息:You do not have permission to access this connection. If you require access, please ask your system administrator to add you the list of allowed users, or check your system settings.

解决:查看tomcat日志,

Nov 21, 2016 5:59:29 PM org.slf4j.impl.JCLLoggerAdapter warn
WARNING: Connection id=172.16.85.12 not found.
Nov 21, 2016 5:59:29 PM org.slf4j.impl.JCLLoggerAdapter error
SEVERE: Error connecting WebSocket tunnel.

可以看到连接不上172.16.85.12,解决方式为在vim /etc/guacamole/noauth-config.xml里为172.16.85.12单独新建一个服务器。原来这里已经有f2etest-ie9指向172.16.85.12,但是在节点处无法访问桌面,添加红框1中的内容之后,重启tomcat,再次访问该服务器上的节点都能成功。

 

坑13:firefox浏览器在uirecorder回放的时候一直失败

填坑:下载 ESR 延长支持版 Firefox 火狐浏览器(45.5 简体中文)

selenium使用2.53.1版本

http://selenium-release.storage.googleapis.com/index.html?path=2.53/

 完美解决!

 (更新:最新版本的geckodriver.exe是支持最新版本的firefox浏览器的,主要在下载geckodriver.exe的时候选择对应的32或64位版本,要与下载的firefox版本对应。firefox官网默认提供的是32位版本,64位版本在下方)

 坑14:节点的selenium server界面提示Report to f2etest failed!

填坑:

 opennode.bat里面用IP和端口

因为大部分人部署f2etest是在内网进行的,使用的IP地址一般没有经过DNS解析,在sever 2008上是访问不到的,建议2008机器上使用host的位置都填写IP和端口

 

坑15:今天在群里遇到一个朋友反馈hostsshare无法使用。

启动代理的时候提示

非代理模式提示hostsshare api 连接失败

 

 

填坑:查看hostsshare.bat里已添加端口,修改编码为ASNI也不管用。

后直接请求IE浏览器INTERNET选项里的局域网设置中的代理连接

 

 

,得到如下错误信息:

原来是文件目录权限错误,修改权限后hosts可以修改成功。

 

 

遗留问题1:f2etest页面下Opera无法上网,所有页面都显示正在载入,包括设置页面。但是桌面模式下完全没问题。如果你有解决方案的话,希望能在下面回复和我交流一下。

posted @ 2016-11-10 01:04  古木堂  阅读(4971)  评论(1编辑  收藏  举报