当前位置: 首页 > 面试题库 >

在Travis的Protractor的Sauce Labs上运行e2e测试

曹子平
2023-03-14
问题内容

所以我有我的开源项目(https://github.com/ahmednuaman/radian),并且我有一些e2e测试,可以使用Protractor在本地正常运行。

我关注了Sauce
Labs文档,
并进行了.travis.yml相应的设置。测试运行到Protractor尝试连接到Sauce
Labs上的selenium服务器的地步,这是该错误的简短快照:

Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>> 
>> timers.js:103
>> if (!process.listeners('uncaughtException').length) throw e;
>> ^
>> TypeError: Cannot read property 'length' of undefined
>>     at HttpClient.send (/home/travis/.nvm/v0.8.26/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)

这是完整的工作日志:https :
//travis-ci.org/ahmednuaman/radian/jobs/16250460

因此,我接下来要做的是尝试在本地模拟此情况。我阅读了Sauce Labs
Connect文档,并最终在终端中运行了它:

java -jar ~/bin/Sauce-Connect.jar USERNAME PASSWORD

一切都开始正常,与Travis完全相同,但是随后我运行grunt e2e任务(更新了protractor.conf.coffee以匹配本地Travis配置后)并收到了与Travis相同的错误,这是快照:

Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>> 
>> /Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542
>>       throw error;
>>             ^
>> TypeError: Cannot read property 'length' of null
>>     at HttpClient.send (/Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)

我周围有个Google,但找不到其他人遇到这个问题。那么,这是我的配置吗?是量角器/网络驱动程序问题?希望对此有所了解吗?


问题答案:

好的,所以在再次阅读所有文档之后,我发现我config.seleniumAddress不正确,因为它最后缺少/wd/hub路径。然后我收到一个新错误:它在抱怨我的凭据。

深入Protractor的源代码后,我发现这个doozy,sauce*如果我指定a
,它基本上清除了所有凭据seleniumAddress,因此我从配置中将其删除,再次尝试并成功了!哇!这是特拉维斯的输出,很有趣:https : //travis-
ci.org/ahmednuaman/radian/jobs/16271613

因此,通过Travis使量角器在Sauce Labs上运行的方法是使用以下配置选项:

config.sauceUser = process.env.SAUCE_USERNAME
config.sauceKey = process.env.SAUCE_ACCESS_KEY
config.capabilities =
  'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER
  'build': process.env.TRAVIS_BUILD_NUMBER

不是 添加一个seleniumAddress



 类似资料:
  • 我在本地安装了两个Docker容器,其中包括Jenkins和Selenium。我有一个用Java编写的Maven项目,其中我创建了一套使用Selenium实现的E2E(端到端)测试。从IntelliJ的终端,使用“mvn测试”(或mvn清洁测试或其他组合)命令,测试正在运行,即使我对Chrome驱动程序使用headless或not。另外,这是用POM编写的插件之一: XML套件文件包含每个自动测试

  • 问题内容: 我只是在我的Express应用程序中添加了Redis Store,并使它正常工作。 我想将这个Redis商店包含在Travis CI中,以使我的代码继续在那里工作。我在Travis文档中读到,可以使用出厂设置启动Redis。 在我的项目中,我不使用出厂设置,而是编写了自己的文件来指定端口和密码。 因此,我在文件中添加了以下行: 但这会在Travis CI上返回以下内容: 有没有什么办法

  • 问题内容: 我正在使用量角器针对Angular应用程序运行测试。它们可以在我的OSX环境上工作,但不能在TeamCity试图运行它的Linux上工作。 当我在本地OSX环境上运行此命令时,它可以工作(也在我的同事计算机上进行了测试): 当我在Linux机器上运行此程序时,或者TeamCity作业尝试运行它时,它失败了: 尝试解决: 我已经看过这个问题,但是独立的webdriver服务器无法解决。

  • 我无法从Python项目在测试目录中运行coverage.py。我有一个测试目录,包含一个文件和一些文件,在那里我定义了我想在每个测试文件的块中运行的测试。 测试目录与文件,看起来像: 当我以,但每当我尝试运行目录中的所有文件时,它都不起作用。 我尝试了以下解决方案: > 每当我运行单个文件的覆盖范围时,codecov输出如下: 这就是我要找的,但是当涉及到测试目录中包含的多个Python文件时。

  • 我试图运行一个简单的测试,但测试失败了,因为量角器试图与页面同步,但不能,因为它不在角度。有什么需要改变的想法吗? 配置文件: 得到以下消息:失败:等待量角器与页面同步时出错:“angularJS测试性和angular测试性都未定义。这可能是因为这是一个非angular页面,或者是因为您的测试涉及客户端导航,这可能会干扰量角器的引导。有关详细信息,请参阅http://git.io/v4gxm 如有

  • 前言 吐槽 e2e测试在前端测试中,也许是最不被看重的一项吧。 小公司就不说了,即使是大厂,也极少有e2e测试。因为它需要花费的精力,相比得到的回报而言,可以说是相差悬殊,说白了,就是吃力不讨好- -|| e2e测试其实就是模拟用户行为,我们得根据业务写各种各样的不同操作。而几乎所有的项目,业务都是会变的。所以,因为业务变了,模拟用户行为也会随之改变。最后,就各种改,即改业务代码,又改测试代码,结