问题标签 [end-to-end]

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 回答
1524 浏览

testing - AngularJS E2E 测试的执行顺序

所以,我注意到块it()内的函数describe()并不(总是)按照我编写它们的顺序运行。

那么它们是异步的吗?以及如何强制他们按照一定的顺序运行?

我想链接一堆 UI 突变,基本上让每个it()函数在上一步之后检查 UI 的状态。

如果它们是异步执行的,那就更重要了。这是否意味着每个it()块都需要包含前一个块中的所有步骤?

0 投票
2 回答
5759 浏览

continuous-integration - 如何在 Karma 中设置远程浏览器?

我很难理解 Karma。我想:

  • 在我的网络上设置多个主机,运行 Linux、Mac 和 Windows
  • 最好也可以在 Android 和 iPhone 上运行
  • 让这些可用于通过 Karma 运行端到端测试
  • 让他们在远程位置而不是本地运行测试

目标:能够自动化测试,确保我们的网站可以在所有平台和浏览器上运行,而不仅仅是我在本地可用的那些。

这可能吗?我正在努力寻找任何好的指南来设置这些东西。

0 投票
1 回答
967 浏览

testing - 您如何在端到端测试中测试 AngularJS cookie?

我有一个简单的服务,可以设置角度的 cookie,但是没有明显的方法来测试它们是否已在端到端测试中设置。

测试代码很简单

但我找不到任何关于如何测试的文档。这是我发现的:

我也试过

但这仅返回父浏览器的 cookie,而不是我要测试的页面。

有关如何执行此操作的任何示例?

0 投票
2 回答
294 浏览

web-applications - 端到端电子邮件加密 Web 应用程序

希望这个问题在stackoverflow的范围内,它包含一些更接近讨论的问题,但其他问题可以回答。

对于我最后一年的项目,我想尝试设置一个端到端的安全电子邮件 Web 应用程序(无论语言数据库或服务器如何)。

我正在经历加密等,并陷入了公钥加密。引自 HowStuffWorks

发送计算机用对称密钥加密文档,然后用接收计算机的公钥加密对称密钥。接收计算机使用其私钥来解码对称密钥。然后它使用对称密钥对文档进行解码。

那么文本使用对称密钥加密,对称密钥使用接收comp的公钥加密?但是接收方使用其私钥来解码对称密钥?Q1:为什么不使用自己的公钥?

此外,虽然我不完全了解公钥加密和使用它的服务,如 PGP 我阅读了有关数字证书的信息,但我再次不明白这是多么可靠,Q2:继续使用用户使用/通过的身份验证会不会更好为了登录他的帐户?[放弃这个问题这是我理解的错误]

Q3:除了以上所有我想知道是否有任何好的步骤可以用来证明系统的安全性。

这是我第一次接触加密方法,所以请对我的无知有点耐心。

谢谢你。

PS *有没有比公钥加密更好的方法?一直想知道最近有关 NSA 计算机处理能力的事件和出版物有多好。

0 投票
1 回答
758 浏览

angularjs - 当我使用 browser().navigateTo() 时如何查看业力

我才刚刚开始使用业力,尽管似乎一切都已正确连接并且我的单元测试正在按预期运行,但我无法进行端到端测试以找到任何元素。

当我进入调试页面时,我可以看到我的应用程序的一个非常简短的闪烁,它告诉我我的代理和配置通常已正确连接,但是当我运行时

无论我放入什么选择器,它都不会找到一个元素。

不过,我的问题是……有什么方法可以让我看到它所看到东西吗?我可以让业力转储 html 响应的全文吗?如果我能做到这一点,我至少可以看到它得到了什么。就目前而言,我根本没有得到任何调试信息,这有点令人沮丧。

如果我可以更轻松地回答问题,请随时询问更多信息。感谢您提供任何帮助。

0 投票
1 回答
144 浏览

javascript - 如何在 Angular 端到端测试中修改数组模型?

我有一个角度应用程序,它在控制器中定义了一个表,如下所示:

rowHeaders 应用于数据对象中的每一行。这与模板连接如下:

这将生成一个带有输入框的简单表格。当框中的输入发生变化时,框的背景颜色也会随着控制器中指定的 updateColor() 中的代码而改变。

所有这一切都很好。我希望能够编写一个非常简单的端到端测试,它将更改表中一个框的内容,然后检查 updateColor() 函数是否被正确触发(也许通过检查背景颜色确实发生了变化)。事实证明,这很难做到。

我曾认为像以下这样简单的事情应该可以工作:

但这实际上不起作用,我收到以下错误:

然而,代码在不处于测试模式时工作正常,并且模型使用 ng-model="data[$parent.$index][$index]" 正确绑定在输入标签中。

对于端到端测试,我如何将一些数据输入到链接到数组模型的表中的任何框中?

我还尝试了以下方法(尽管我更愿意使用 input().enter()):

这会更改框内容,但不会触发 updateColor()。我也试过把 e1.blur() - 这也不起作用。

0 投票
2 回答
175 浏览

validation - 如何在 Angular 中测试表单验证

我正在尝试围绕使用 Angular 的表单编写测试。

遵循此解决方案后,我可以在 e2e 测试中访问表单的范围。现在使用此代码:

不管什么原因,scope.form.$valid都是假的。如果我将它包装在 asetTimeout()中,它会很好地工作。Angular 的sleep()方法没有用。

任何指针?

0 投票
0 回答
83 浏览

encryption - Web 服务的端到端“多端”加密

我需要一个框架来为我平台上的所有用户提供端到端加密。我的平台上有两种类型的用户:

  1. 发布敏感数据的那些(称为用户集P
  2. 想要接收敏感数据的人(调用用户集R

用户应该能够决定数据中的哪些人p可以使用(当然,作为平台提供者,我永远不应该使用数据)。因此,我认为,每个用户都会获得一对密钥,并且每当发布某些内容时,都必须使用被列入白名单的用户的每个公钥对数据进行加密。这在理论上听起来很可靠,但我想,在实现这一点时会出现很多问题。PRRpR

  • 每个白名单用户的每个加密数据记录都必须存储在数据库中,R这会产生非常大的存储开销因素
  • 一个人必须跟踪p他的白名单的变化
  • ...

但主要的问题是:是否有稳定的解决方案可以为用户提供一对密钥?我发现的唯一方法是Web Crypto,它似乎处于早期开发模式。

我提出的想法:

  1. 是否可以将加密的私钥本身存储在服务器上并在标准身份验证后提供?(也许通过为交付添加另一个加密层)
  2. 这不是一个最佳方法,但如果没有其他方法:如果我们让用户安装额外的软件,会有一个可靠的解决方案吗?
0 投票
4 回答
28545 浏览

dom - How to get the parent of an element

For example, I am randomly picking a button element from within the rows of a table.
After the button is found, I want to retrieve the table's row which contains a selected button.

Heres is my code snippet:

0 投票
0 回答
1079 浏览

javascript - Protractor/AngularJS 在控制器中调用函数来更新 ng-view

我对(复杂)项目的测试方法有一些问题。

情况如下;我们有 2 个 Angular 应用程序和多个 API 服务器应用程序。第一个 Angular 应用程序包含一个调用登录 API 的表单。API 可以返回许多不同的状态。在所有这些状态中,只有一个导致登录正常。如果是这种情况,则会调用第二个 Angular 应用程序。如果不是这种情况,则在第一个应用程序中加载了许多部分中的一个。

目前我对不同的组件(服务、控制器等)进行了单元测试,使用量角器进行 e2e 测试来测试页面的行为。最后是一些集成测试来测试跨多个前端/后端应用程序的功能流。API 是完全独立测试的。

对于第一个 Angular 应用程序的 e2e 测试,我现在调用登录 API 来测试每个部分页面。因为对于 Angular 和 API 应用程序我们有相当复杂和不同的构建过程,所以我想删除 e2e 测试的 API 依赖,并仅在集成测试中测试接口。

导航设置如下:

我有一个带有登录控制器和导航控制器的表单。如果提交了表单,则会调用登录函数。

伪代码:

在导航控制器中,如果有一个 pages 对象:

导航控制器中的重定向:

然后在索引中:

ng-repeat="page in pages" ng-if="navigateToPage.pageName == page.pageName ng-include="page.pageURL"

所以这很好用。但是现在我想在不调用登录功能的情况下访问其他页面。所以我想用 otherpage 对象调用导航控制器中的重定向函数。但是我似乎无法让它工作。

测试代码:

此代码确实找到了元素并且不会产生任何错误。但是,不会调用重定向方法,并且该页面未设置为浏览器中的其他页面。

有人有什么想法吗?我有点迷路了。这是正确的方法还是我应该朝另一个方向走?