问题标签 [e2e-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
433 浏览

internet-explorer - 如何修复 conf.js 以使量角器测试与 Internet Explorer 一起使用?

基本问题是我无法让量角器与 Internet Explorer 一起工作(它与 Chrome 一起工作)。所以,我读了这篇文章:无法在 Internet Explorer 11 上运行量角器。但是,这似乎不足以解决我的问题。

给出的错误如下:

conf.js 如下:

0 投票
0 回答
165 浏览

javascript - 量角器测试在 Chrome 上随机停止

我使用 Protractor 和 CucumberJS 设置了一些 e2e 测试,但是在使用 Chrome 时遇到了很多困难。测试在 Firefox 上顺利通过,但在 Chrome 中,它们在任何步骤中随机停止。有时它只是挂起加载和 url,有时它会突然停止发送密钥,有时它会挂起试图“单击”一个按钮。有人有什么主意吗?在 Firefox 上一切正常。我已经尝试了很多东西:ignoreSyncronization,waitForAngular 没有任何运气......这是我的步骤定义:

};

这里有两个不同的屏幕截图,第一次,停止加载 url,第二次,发送密钥:

https://dl.dropboxusercontent.com/u/1437542/run1.jpg https://dl.dropboxusercontent.com/u/1437542/run2.jpg

0 投票
4 回答
24885 浏览

javascript - 我可以访问量角器配置文件中的参数吗?

我通过运行以下命令开始我的量角器测试:

我想运行一个依赖于一个参数(在本例中为 baseUrl)的“启动前”功能。这可能吗?

如果我运行它,我会得到一个 ReferenceError,因为未定义配置。我该怎么做?这甚至可能吗?

0 投票
2 回答
1127 浏览

javascript - 使用 Angular js 上传文件 - 量角器 e2e 测试

我想上传一个文件作为自动化测试,使用以下代码,它正确选择文件并单击上传按钮,但是单击上传按钮后没有任何反应,我相信它不会触发页面上的 javascript:

还有另一种方法吗?

编辑:我已经做到了,感谢帮助我的人,这是我的代码:

0 投票
1 回答
308 浏览

php - AngularJS应该测试什么

所以我和我的团队正在创建一个 Web 应用程序,我们正在这样做:

  • 其中一位负责 API:
    • api 将为 UI 提供服务,为其提供数据,并有可能提供 UI 所需的字段、排序和所有内容,基本上它过滤所有数据,因此 UI 不必这样做。
  • 另一个负责 UI:
    • UI 将使用 API 并呈现数据
  • 我正在做测试,但我在代码之后做测试。我测试 API(phpunit - 单元测试和集成测试)和 UI(jasmine - 单元测试和量角器 - e2e 测试)

那么我应该真正测试什么?

angularJS 上的大多数控制器功能都在获取数据并将其分配给 $scope,那么这些功能是否值得进行单元测试?

控制器方法示例:

其他方法与某些 if 的方法基本相同,这取决于来自 API 的数据。

服务方式:

所以测试会是这样的:

  • 使用 $httpBackend 模拟数据
  • 检查范围具有正确的模拟数据,但这将导致如下所示:expect($scope.something).toEqual(MockedSomething);并且 http 模拟将是这样的:$httpBackend.expectGET('/something').respond(MockedSomething);

我知道 UI 上的 E2E 测试非常重要,但在这种情况下,是否值得为这种方法进行单元测试?还是我应该只测试真正重要的方法,比如微积分方法和类似的方法?

另一方面,API 中的大多数功能似乎与集成测试无关,而单元测试似乎更重要。

我真正的问题是我的想法是否正确以及在这种情况下要测试什么的一些方向。

编辑1:

另一个问题:在我的情况下(我在代码之后进行测试,而不是测试驱动开发),我应该只在控制器完成之后进行测试(做它应该做的但可以重构一点)对吗?

0 投票
1 回答
820 浏览

selenium - 量角器串行规范执行

测试重构后,我遇到了奇怪的问题。我弃用了 beforeEach/afterEach 块以显着减少执行时间,现在我在一个接一个地运行简单的规范时遇到了问题。我已经创建了简单的配置和规格。

配置:

规格一:

规格 2:

如果我分别执行它们而不是使用

没关系,但是当我有上述配置时,我有这样的例外:

[启动器] 运行 1 个 WebDriver F 实例。

失败:

1)谷歌规范验证搜索输入输出消息:预期假为真。Stacktrace:错误:[object Object] 的期望失败。(/Users/sergeyteplyakov/WebstormProjects/e2eMPP20/googleSpec.js:13:54)

在 6.339 秒内完成 2 个测试,2 个断言,1 个失败

[启动器] 0 个 WebDriver 实例仍在运行 [启动器] chrome

1 个失败的 1 个测试 [启动器] 总体:1 个失败的规范 [启动器] 进程退出,错误代码为 1

进程以退出代码 1 结束

在我的真实测试中,当我的规格与我提供的类似时,我遇到了同样的问题。当我查看由于某种原因真正发生的事情时,来自第二个规范的 .get(url) 方法在第一个规范完成之前开始执行。我想我错过了一些核心和重要的东西,谁能指出我)

0 投票
1 回答
93 浏览

angularjs - 使用实体进行 E2E 测试

我正在尝试优化我的 E2E 测试以结合实体的使用。

我们的测试基本上是将数据填充到网页上的表格中。我们的测试使用 PageObject 方法,其中我们的 PageObject 将我们的元素存储在变量中,并且我们还有包含与存储在 PO 文件中的元素的交互的变量。

我们的规范文件称为 PO 文件并将数据输入到每个元素中,类似于(这只是我们正在做的示例):

采购订单文件:

规格文件:

在我们的规范文件中,我们有大约 100 行这段代码,据我所知,这不是很有效。我想删除这种风格并改用实体,但是我不确定我将如何去做,因此我为什么要来这里。

我的一个朋友给了我一个提示,告诉我我会怎么做,这是他提供给我的:

规格文件:

现在我知道我可以将 nameEntity 切换为存储在 pageObejct 文件中,但是我不确定应该如何创建 PopulateUIWIthNameEntity。

我尝试了以下方法,但似乎无法将 nameEntity 中的值输入到元素本身中。

页面对象文件:

0 投票
2 回答
2143 浏览

rest - 量角器 - 测试休息终点

我正在尝试从 Protractor E2E 测试中调用休息端点。我提到了以下站点,但是这篇文章似乎基于旧 API

例如:protractor.promise.defer(); 似乎在最新的 API 上不再有效。

http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/

您能否建议/提供示例代码以根据最新的量角器 API (>= 1.3) 调用休息端点。

我正在尝试编写通用函数,如下所示。

0 投票
1 回答
197 浏览

pdf - 有没有办法在验收/e2e 测试中测试 PDF 输出?

为了测试我的大多数业务需求的结果,我需要确定 PDF 是否正确呈现。

一个典型的测试涉及与 Web 应用程序的一些 UI 交互以及生成的 PDF 的下载。

然后应该将结果与他们的期望进行比较。

是否有能够检查 PDF 的测试框架?

0 投票
1 回答
372 浏览

angularjs - Protractor Jasmine 适配能否正确等待 protractor.promise.defer().promise?

首先,向 Protractor 团队和社区致敬,因为他们提出了这样一个库来解决诸如 E2E 测试之类的棘手问题。

我在 ElementFinder 周围有一个包装 JS 类,因为我想添加额外的实用程序方法来进一步检查 ElementFinder。当我返回此类对象的实例时,我将其返回:

稍后我希望 Jasmine 2.1 中的值使用:

根据Protractor 女王@juliemr的官方文档,应该等到承诺解决。它似乎在不停地掠过。查看我的代码生成的 promise 实例,我发现它的类型是:。在量角器代码中,我注意到它正在使用:。我也尝试过包装调用但没有成功,并希望避免使用一系列链接调用,因为它会使测试的可读性降低。expectgoog.scope.promise.Promisewebdriver.promise.isPromise(res)flow.execute.then

在继续测试流程之前,这是否会正确地等待解决我上面的承诺?

如果不是,那么创建 Protractor 的风格正确检查的 Promise 对象的正确方法是expect什么?

我正在使用新的闪亮的 Protractor 2.0 版本运行。