问题标签 [hp-quality-center]

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

.net - 执行集成测试时如何从 .Net 应用程序中隔离坏的 COM 组件 (HP Quality Center 10.0)

我目前正在开发一些基于 .Net 的软件(.Net Framework 3.5 SP1),它通过它的 COM 客户端 API(通常称为 TDApiOle80 或 TDApiOle80.TDConnection)与 HP Quality Center 10.0 集成。

我们正在使用 XUnit 1.6.1.1521 和 Gallio 3.1.397.0(从 msbuild 文件调用)

我们经历了一个过程:

  • 创建连接
  • 运行测试
  • 关闭连接
  • 处置
  • 强制 GC.Collection() / GC.AwaitingPendingFinalizers()

对于每个集成测试 - 每个集成测试都在其 Fact 中配置的超时运行。

我们遇到的问题是,它出现在几次测试(比如大约 10 次左右)之后,质量中心在调用时会无限期阻塞 - 整个 Gallio 冻结并且不再响应。

最初我们发现 xunit.net 仅将它的超时应用于事实中的代码 - 所以它会无限期地等待构造函数或处置方法完成 - 所以我们将该逻辑移动到测试主体中只是为了确认......但是这还没有解决问题(运行一定数量的测试后仍然会挂起)。

使用 TestDriven.Net 时也会发生同样的事情 - 可以交互地运行 1 个或几个测试,但超过 10 个测试并且整个运行冻结 - 我们唯一的选择是终止 TD.Net 使用的 ProcessInvocation86.exe 进程。

有没有人有关于如何阻止这种情况发生的任何提示/技巧,或者至少将我的集成测试与这些类型的问题隔离开来——以便 QC API 无限期阻塞的测试,测试将因超时而失败并且让加里奥进入下一个测试。

更新

使用 STA 线程的提示有助于将问题向前推进一点 - 通过自定义 XUnit.Net 属性,我们现在在它自己的 STA 线程中启动测试。这已经阻止了 Gallio/TestDriven.Net 完全锁定,因此我们可以在我们的 hudson 构建服务器上运行集成测试。

相反,我们现在在使用 TestDriven.Net 运行测试时会看到这样的输出 - 顺便说一下,运行同一个套件几次将导致所有测试通过,或者通常只有一两个测试失败。在第一次失败后,第二次失败会导致“卸载 appdomain 时出错”问题。

测试“IntegrationTests.Execute_Test1”失败:超过测试执行时间:30000 毫秒

测试“T:IntegrationTests.Execute_Test2”失败:卸载 appdomain 时出错。(来自 HRESULT 的异常:0x80131015) System.CannotUnloadAppDomainException:卸载 appdomain 时出错。(来自 HRESULT 的异常:0x80131015)在 System.AppDomain.Unload(AppDomain 域)在 Xunit.ExecutorWrapper.Dispose() 在 Xunit.Runner.TdNet.TdNetRunner.TestDriven.Framework.ITestRunner.RunMember(ITestListener 侦听器,程序集程序集,MemberInfo 成员) 在 TestDriven.TestRunner.ThreadTestRunner.Runner.Run() 的 TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath)

4 次通过,2 次失败,0 次跳过,耗时 50.42 秒(xunit)。

我还没有确定为什么 Quality Center API 会无限期地随机挂起 - 不久将对此进行进一步调查。

2010 年 7 月 27 日更新

我终于确定了挂起的原因 - 这是有问题的代码:

似乎在 ConnectProjectEx 之后调用 Connect 有可能被阻塞(但它是不确定的)。删除冗余连接调用似乎显着提高了测试的稳定性 - 正确的连接代码:

继承了代码库后,我没有过多考虑连接代码。

我还没有弄清楚的一件事是为什么即使使用上面包含的超时代码, Thread.Join(timeout) 也永远不会返回。您可以附加一个调试器,它只显示测试线程处于加入/等待操作中。也许与在 STA 线程中执行有关?

0 投票
5 回答
20993 浏览

bug-tracking - QA 团队使用 HP Quality Center,Dev 团队想要使用 JIRA——这会行得通吗?

我们的 QA 团队使用 HP Quality Center 进行缺陷跟踪、测试计划等。

开发团队非常讨厌 Quality Center,并希望使用 JIRA 进行内部任务跟踪。这两个系统可以无缝地协同工作吗?

我曾参与过两个团队使用单独的问题跟踪系统并让它们保持同步的项目,这是一个令人头疼的问题。

任何人都有集成 Quality Center 和 JIRA 的实际经验吗?

0 投票
5 回答
15402 浏览

hp-quality-center - HP QC(质量中心)中的跟踪历史记录

有没有办法在 QC 中跟踪错误的历史记录?我想要得到的是在一个版本中重新打开了多少错误以及重新打开了多少次。从 QC 来看,我只能看到“状态”为“关闭”,但它不会给我关于它多次从“关闭”变为“重新打开”然后“修复”然后“重新打开”然后“关闭”的信息”。

提前致谢!

0 投票
1 回答
3996 浏览

sdk - 如何通过 OTA API 从 Quality Center 中的测试中删除步骤

在 Quality Center OTA API 中,如何从测试中删除步骤。当我使用 DesignStepFactory 的 RemoveItem 方法删除步骤时,它们仍然存在 - 我尝试通过 ID 和步骤引用删除:

根据 OTA API 文档

RemoveItem 方法

描述:从数据库中删除项目。删除会立即进行,无需发布。

句法:

Public Sub RemoveItem(ByVal ItemKey As Variant)

项目密钥:

Step.ID(长),对 Step 对象的引用或 Step.IDs.Step.IDs 的 Variant 数组。

所以看起来它应该工作。仅供参考,这是针对 QC10 的。

有什么想法吗?

0 投票
2 回答
1584 浏览

automated-tests - 我可以确定当前测试执行人员是来自测试实验室还是在 QTP IDE 中以交互方式执行?

检查当前 QTP 测试执行是否是交互式的,即不是从 QC 测试实验室启动的 QC 测试集执行的一部分,最有效的方法是什么?

大佬们知道什么好方法吗?WR 曾经有一个批处理运行标志,该标志可靠地为 IDE 内的所有执行清除。也许QTP有这样的东西,我忽略了它?

首先,我想到了看OnError属性:

qtApp.Test.Settings.Run.OnError现在返回以下可能值之一:“Dialog”、“NextIteration”、“Stop”或“NextStep”。

这将允许我查看OnError设置,当执行是测试集的一部分时,它可能是 <> "Dialog" 和 <> "Stop",但是:

  • 我设法在所有 QTP 测试中避免使用自动化接口,这将是我的第一个例外(早期的 QTP 版本感到困惑并启动了第二个 QTP 实例,产生了很多问题......)
  • 测试人员可能会在 QTP IDE 中执行“交互式”运行,并将此设置设置为“NextStep”或“NextIteration”,然后我会在我的代码中误解它。
  • 它不起作用,即使没有出现对话(由于从 QC 测试集执行),返回的值是“对话”。哦!
0 投票
2 回答
18176 浏览

hp-quality-center - Quality Center OTA API:仅返回 TestSetFolder 中的第一级子 TestSet

HP QC OTA API 似乎提供了两种方法来返回指定 TestSetFolder 中的 TestSet 列表。但是,这两种方法都是递归的,并返回层次结构中每个子文件夹的所有测试集。我希望能够只返回任何给定测试集文件夹的直接子测试集。我意识到这可以通过使用 Command 对象的非常简单的 SQL 查询来实现,但由于需要 QC 权限,这在我的场景中不是一个选项。

考虑下面的以下 c# 代码示例。这里使用标准的 QC 示例项目来说明问题。使用“Root\Mercury Tours Web Site\Functionality And UI”的文件夹路径,3 个测试集在所有情况下都正确返回。但是,指定“Root\Mercury Tours Web Site”的路径会返回 5 个测试集,因为样本分别包含 3 个和 2 个测试集的 2 个子文件夹。在这种情况下,SQL 正确地不会返回任何测试集。

可以遍历返回的测试集以检查 TestSetFolder 路径属性是否与当前文件夹匹配。但是,这会导致很大的性能开销,尤其是对于大型 QC 项目和/或网络连接速度较慢的情况。

QC 中必须有某种方式来执行此操作,因为 QC Web UI 和 QCExplorer 工具都会在您展开测试集树中的节点时逐步加载测试集。

有任何想法吗?谢谢!

0 投票
1 回答
5295 浏览

sql - 是否可以使用 HP Quality Center 进行递归 SQL 查询?

这个问题已经在 stackoverflow 和其他地方被问过:

  1. 是否可以进行递归 SQL 查询?
  2. Requêtes récursives avec les CTE - Example avec SQLServer 2003

但我想让这项工作用于 HP Quality-Center 10 中的报告查询。

有人对这些技术有深入了解吗?


一个简单的检查:

QC 报告“Quality Center 无法运行查询,因为它包含无效语句”。

而以下故意错字

QC 报告“SQL 查询 ... 运行失败,出现以下错误:SQL 失败 ... [Mercury][Oracle JDBC Driver][Oracle]ORA-00933: SQL 命令未正确结束。”

所以我想它回答了两个问题:

  1. 服务器是甲骨文(虽然它没有给出版本)
  2. with 不允许通过 QC 界面
0 投票
1 回答
597 浏览

visual-studio-2008 - Visual Studio 2008 和 HP Quality Center 10:有插件吗?

你知道有什么插件可以使用 VS2008 中的 HP Quality Center 10 吗?

谢谢,狮子座

0 投票
2 回答
1612 浏览

python - 使用 QuickTest Pro 获取对 Quality Center API 接口 ISupportCopyPaste 的参考

Quality Center OTA API 提供 ISupportCopyPaste(使用剪贴板复制/粘贴数据)等接口。获取对已实现接口的引用的记录方法是:

上面的代码在 VB 中(我不想使用)。
但是,QTP 不允许在 Dim 语句中使用“As”。
谁能告诉如何使用 QTP 获得参考?
这个问题的任何其他解决方案?例如:使用 Python Win32

0 投票
2 回答
12968 浏览

hp-quality-center - QC OTAClient dll

我们通过引用 OTACLient.dll 为使用 OTA API 的客户端之一开发了一个 QC 适配器

这个 DLL 是可再分发的吗?