问题标签 [gui-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 投票
2 回答
195 浏览

testing - 定义非自动化软件测试并跟踪测试结果?

我们想要一个系统来定义测试,非自动化 UI 测试,我们的 Q/A 人员将使用它来测试我们的软件。我们需要概述需要测试的区域,然后允许它们转到列表的末尾并在此处标记通过/失败以及任何注释,例如注释失败、错误消息等。

对有效执行此操作的产品有什么建议吗?

谢谢你。

0 投票
1 回答
1418 浏览

c# - GUI 测试和访问 .NET 对象的本机属性/字段

我的团队目前使用 TestComplete 进行自动化 UI 测试(.Net 3.5 WinForms 应用程序)。我们正在考虑切换工具 - 一个主要原因是我们想使用 C# 编写 UI 测试。(我们的非 UI 测试 - 单元、集成、系统 - 都是 C#,我们的团队在用 C# 编写和组织代码方面经验丰富,我们喜欢测试代码的编译时检查等好处)

然而,TestComplete 的一个非常重要的特性是能够访问 AUT 中 .Net 对象的本机属性。我们的 UI 有一些尴尬的地方,我们需要读取底层数据并进行一些算术运算以确定如何执行下一个操作。我们可以使用 TestComplete 的对象浏览器附加到 GUI 应用程序并开始探索控制层次结构,并探索 .Net 属性/字段。并在我们的自动化测试中访问相同的内容:http: //support.smartbear.com/viewarticle/30816/

我快速浏览了 Ranorex(勾选了 C# 框),从这个意义上说,它似乎没有 TestComplete 那样强大。一旦属性/字段类型不可序列化,它似乎就会卡住并返回 null: http ://www.ranorex.com/blog/transfering-data-to-and-from-a-net-control

将对象复制到进程边界上似乎是合理的,该对象应该是可序列化的,但是 TestComplete 在做什么呢?反射有什么讨厌的东西?

我的问题是,是否有任何测试框架可以让这个属性浏览像 TestComplete 一样简单,同时允许我们用 C# 编写测试?(并且希望比 TestComplete 更不容易崩溃)

Ranorex 链接似乎表明我们可以编写自己的(测试)代码来将对象映射到可以传输的东西,但这是额外的努力。此外,TestComplete 的对象浏览器对于测试人员手动探索应用程序的模糊深度非常有用,而 Ranorex 的 Spy 工具不允许您浏览到不可序列化的对象。

0 投票
1 回答
1030 浏览

testing - 如何将 Selenium RC 用于 Selenium IDE 测试用例依赖项?

我有一个在 Selenium IDE 中制作的身份验证测试用例,必须在所有其他测试之前执行。我不想在测试套件中使用它们,因为如果我对身份验证测试用例进行一些更改,则有必要更改使用它的每个测试用例套件。

有没有办法在运行 Selenium RC Server 时指定此测试用例依赖关系测试用例执行顺序?就像是:

java -jar selenium-server-standalone-2.31.0.jar <path>\authentication_test_case.html <path>\application_feature1_test_case.html <path>\report.html

或者然后

java -jar selenium-server-standalone-2.31.0.jar <path>\authentication_test_case.html <path>\application_feature2_test_case.html <path>\report.html

我的需要是在身份验证测试用例中所做的更改不会影响依赖它的其他测试用例/套件。欢迎任何想法!

0 投票
3 回答
1229 浏览

selenium - 如何使用 selenium 测试多个应用程序的协作

我想使用 selenium 来测试两个或多个应用程序(主要、监控、管理)如何协同工作。但是,我所能找到的只是如何测试单个应用程序。

示例场景可能如下所示:

应用程序可以部署在不同的服务器上。通信是通过一个公共数据库执行的。这些应用程序不一定使用相同的技术堆栈来实现。

0 投票
1 回答
743 浏览

automation - 在 Java Web Start 应用程序中自动启动和执行 GUI 操作

我想自动化涉及以下步骤的 GUI 测试。

  1. 在我的网络浏览器 (Internet Explorer) 中打开一个 URL。此 URL 的页面将包含一个链接。
  2. 点击页面上的链接。这将下载 JNLP 并自动启动 Java Web Start 应用程序。
  3. 该应用程序将有一些需要填写的文本字段和一些需要按下的按钮。

我怎样才能自动化呢?

平台:视窗

编辑:我将 Sikuli 视为一种可能的自动化方法,但我不知道它是否能够在应用程序之间从 Web 浏览器(在步骤 1 中)切换到 Java 应用程序(在步骤 3 中)。有没有其他可用的工具(最好是开源的)我应该看看?

0 投票
1 回答
859 浏览

singleton - 我的所有课程都可以单例吗?

我正在实施一个项目,我正在测试我的 UI。因此,我的 UI 的每个部分都是一个单独的类(Seleniums 页面对象模式)。现在,因为它只是我正在测试的一个网页,据我说,我的 UI 组件只有一个实例,虽然它们确实改变了状态,但我看不到这些组件的多个实例浮动的好处.

所以,我很想把它们都设为单例,这是一种不好的做法吗?

例如 -

|------------------------------------------------- ------------|
| |
| |
|------------------------------------------------- ------------|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
|------------------------------------------------- ------------|

在整个用户会话期间,所有这些部分都将保留在我的页面上,但它们可能会更改状态,例如切换、调整大小、更改其中的数据等。

有什么想法吗?

0 投票
1 回答
131 浏览

wpf - 使元素可见后访问 WPF DataGrid

目前,我遇到了一个乍一看很简单的问题。它是关于自动化 GUI 测试的。

我想通过使用 ScrollIntoView(row) 滚动然后直接访问行/单元格来使 WPF DatGrid 的行/单元格完全可见。不幸的是,ScrollViewer 中的滚动似乎是异步发生的。这意味着我需要等待滚动完成才能访问行/单元格。为此,我找到了可以订阅的 ScrollChanged 事件。

只有一个细节我无法解决:如果我想要访问的行/单元格已经可见(并且不需要滚动),我不会收到该事件并且算法会卡住。我无法找到一种可靠的方法来预测对 ScrollIntoView(row) 的调用是否实际滚动。

知道如何解决这个问题吗?

0 投票
0 回答
817 浏览

testing - 如何使用 Selenium 2 控制文件选择器?

硒网站声称:

它更有效地驱动浏览器,克服了 Selenium 1.x 的限制,这些限制影响了我们的功能测试覆盖率,例如文件上传或下载、弹出窗口和对话框屏障

但我只知道使用 AutoIt 或 AWT KeyEvents 或多或少奇怪的黑客攻击。

那么,我如何告诉 Selenium 将某个路径放入文件对话框(而不是打开文件对话框的表单元素!)并单击“确定”?

0 投票
2 回答
167 浏览

testing - 确定 Web 应用程序是否在 UI 测试模式下运行

我试图找出确定我是否正在为 Web 应用程序运行 UI 测试的最佳方法。我尝试这样做的原因是因为如果我正在运行 UI 测试,这些测试的唯一目的是确保 UI 正常工作并且要做到这一点,它们应该针对模拟 API 运行(我们有一个单独的集合集成测试以确保 UI 和真正的后端 API 一起正常工作)。此外,模拟 API 调用将使测试测试运行得更快,这是模拟它们的另一个原因。我认为这些 UI 的“单元测试”。

我也不想拥有相同代码库的 2 个单独副本,其中除了 UI 测试版本包含模拟 UI 测试正常运行所需的所有必需调用的 javascript 文件之外,所有内容都相同。如果我能够弄清楚我在 UI 测试模式下运行应用程序,那么我将能够知道是否包含 javascript 文件来模拟调用。

有没有“标准”或“公认”的方式来做这样的事情?

0 投票
0 回答
1208 浏览

javascript - Phantom JS 加载一个页面,通过 require JS 加载内容

我正在尝试无头地测试我们团队使用 RequireJS 构建的网站。基本上我们通过 requireJS 动态加载所有内容,然后使用 JS 响应事件并动态呈现内容。

当我将 phantom JS 指向我们的服务器并渲染屏幕截图时,我得到一个白屏,javascript 已启用,因为当我将其指向 www.enable-javascript.com 时,我收到消息“Javascript 已启用”。

这是我们的页面 HTML:

幻影JS: