Angularjs 使用单次吞咽任务管理量角器测试
我正试图让e2e测试在我的角度项目中使用Gulp 我能够让它工作,但前提是我在单独的终端窗口中使用Angularjs 使用单次吞咽任务管理量角器测试,angularjs,protractor,Angularjs,Protractor,我正试图让e2e测试在我的角度项目中使用Gulp 我能够让它工作,但前提是我在单独的终端窗口中使用webdriver manager start手动启动独立的selenium服务器 理想情况下,我希望我的gulp任务能够管理服务器的启动和停止,这样就不会增加团队运行这些测试的开销 我是按照这里的说明安装的: 它们描述了启动selenium服务器的两个选项。一种是设置一个gulp任务,该任务的作用似乎与webdriver manager start相同: gulp.task('webdriver
webdriver manager start
手动启动独立的selenium服务器
理想情况下,我希望我的gulp任务能够管理服务器的启动和停止,这样就不会增加团队运行这些测试的开销
我是按照这里的说明安装的:
它们描述了启动selenium服务器的两个选项。一种是设置一个gulp任务,该任务的作用似乎与webdriver manager start相同:
gulp.task('webdriver_standalone', require("gulp-protractor").webdriver_standalone);
这是可行的,但当我让e2eTest任务作为依赖项调用它时就不行了。我必须在单独的终端窗口中运行gulp webdriver\u standalone
我无法理解另一个建议选项
指向量角器配置文件中的selenium jar
这些说明需要指向selenium server standalone jar的路径,位于量角器snode\u modules
(/node\u modules/dragrator/selenium/selenium/server-standalone-2.45.0.jar
)中,但我的node\u modules/dragrator/
目录没有这样的jar(或selenium
子目录)
的说明似乎也存在同样的问题,即必须在另一个终端窗口中运行selenium服务器
有没有一种方法可以进行设置,这样一个单独的gulp任务就可以启动独立服务器,运行测试,并在没有其他干预的情况下关闭它?当您运行量角器时,您有几个关于Selenium WebDriver的选项(请记住WebDriver是用Java编写的web服务):
使用带有远程(独立)服务的量角器运行。它可以是本地的,也可以在不同的机器上。如果Selenium在不同的机器上,那么您的web应用程序应该是公开的,而不仅仅是本地主机。如果您选择使用独立的Selenium服务,则可以使用seleniumAddress选项配置配置文件/Gulp任务
“要求”量角器为您运行Selenium。在这种情况下,量角器将使用您在seleniumServerJar配置中提供的Jar文件运行SeleniumWebDriver
不要使用Selenium WD。改为使用direct connect,它仅与Chrome和(可能)Firefox兼容
在您的情况下,只需运行:
./node_modules/protractor/bin/webdriver-manager update
它将下载Selenium。然后将config指向正确的jar。让它在本地工作的最简单方法是使用本地Selenium独立jar,正如Igor在选项2中所建议的那样。(要让gulp作为派生的子进程或异步任务运行webdriver manager start
是相当困难的。)
您可以使用以下方法轻松地在node\u modules
文件夹中获取该jar:
npm安装selenium服务器独立jar——保存开发
然后,在dragrator.conf.js
中注释掉或删除seleniumAddress行,并为seleniumServerJar添加一行
我想我的问题是我找不到.jar
文件。根本不知道问了这个问题后发生了什么变化,但我通过在服务器运行时运行ps-ef
找到了答案。瞧,这正是我最初的问题所说的我找不到的地方:/node\u modules/dragrator/selenium/
也谢谢你提到的direct connect
,我还没有听说过。我计划在我们的CI管道中使用远程selenium服务器,但为了本地开发,我想让dragrator为我做这件事。你同意这听起来是最好的选择吗>我也在考虑做同样的事情,但还没有找到一个好的解决方案!默认情况下,对于selenium服务器,量角器现在会查找node_modules/dragrator/selenium/…
。如果通过npm
本地安装了量角器,那么Selenium已经存在,因此不需要单独安装Selenium server standalone jar
。根据,seleniumServerJar:
将默认为node\u模块/量角器/selenium/…
,除非配置了另一种启动selenium的方法。这意味着无需每次更新seleniumServerJar:
seleniumServerJar。
exports.config = {
seleniumServerJar: '../node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-2.47.1.jar',
//seleniumAddress: 'http://localhost:4444/wd/hub',
/* Lines below for completeness only, leave yours as is. */
framework: 'jasmine2',
specs: ['login-spec.js'],
multiCapabilities: [{
browserName: 'chrome',
browserName: 'firefox'
}]
};