【问题标题】:How to integrate JIRA with Selenium WebDriver?如何将 JIRA 与 Selenium WebDriver 集成?
【发布时间】:2015-02-25 09:43:13
【问题描述】:

如何将 JIRA 与 Selenium WebDriver 集成?实际上,我想在 JIRA 中执行测试用例并报告每个测试用例的通过/失败状态。

【问题讨论】:

标签: selenium selenium-webdriver automation integration jira


【解决方案1】:

你的问题很笼统,所以我的回答也会照搬。

Jira 并不完全是一个 TCM(测试用例管理器)应用程序,尽管使用 Jira 跟踪测试当然是可能的......重点是,您可能正在查看大量的自定义代码工作,试图获得集成了测试启动/调度功能。最好使用 Jenkins 或 Team City 之类的工具来启动。

要将结果返回到 Jira,您需要做两件事。首先是一个测试框架。假设您使用 Java 语言绑定,TestNG 与 JUnit 一样非常适合 Selenium。但是,无论使用哪种语言,您都需要与 Selenium 一起使用的测试框架。我不确定是否有任何库将测试框架集成到 Jira 中,因此可能涉及一些自定义代码来捕获自动化测试的结果并将这些结果传递到 Jira,这是第二个需要的项目.正如@Helping Hands 提到的,他们的 REST API 可能是一个不错的起点。可能有一个 TestNG 的听众可以做到这一点,但粗略的谷歌搜索并没有返回任何有价值的信息。

如果我可以发表一点意见,我想知道 Jira 是否真的是完成这项工作的最佳工具。我意识到你可能有一些限制限制了你的选择,但我认为集成到 Jira 可能有点重新发明轮子。 qTest 或 TestRail 等工具专为 QA 活动而构建,可自行与 Jira 集成,并为开箱即用的自动化结果报告提供支持。我并不是说您想做的事情是一个坏主意,只是可能有其他选项可能不需要太多开销来产生价值。

我希望这会有所帮助。如果您可以提供有关您的目标的更多详细信息,我很乐意添加更具体的意见。

【讨论】:

  • 感谢蒂姆的详细回复,让我更清楚我的目标。实际上,我们已经将 Zephyr(插件)与 jira 集成在一起。并将测试用例上传到其中。有超过1000个测试用例。我的目标是使用 Selenium(Java) 并自动化这些测试用例,这样当我从测试用例中执行各个步骤时,我应该能够标记与每个测试用例相对应的结果(通过/失败)。你能告诉我这是否可以做到吗?谢谢!
  • 那么我肯定会推荐 TestNG。您需要找到或创建一个侦听器才能将结果输入 Jira。但是,您不会获得单个步骤的结果解析,但您会获得整个测试的通过/失败。我仍然怀疑是否有一种方法可以从 Jira 启动执行(至少据我所知),因此请考虑使用可执行 jar、TeamCity 或 Jenkins 进行执行调度并启动。
【解决方案2】:

通过将jira client 集成为我的实用程序类的一部分,我能够将 JIRA 与基于 Selenium Web 驱动程序的项目一起使用。 [这与 selenium web 驱动无关]

以下示例说明了如果任何自动化测试失败,如何在 JIRA 中记录缺陷。 [这只是一个样本。您可以参考下面的示例代码自行尝试提到的场景]

JiraClient jira = new JiraClient("<JiraUrl>", "<creds>");

public void createNewJiraIssue(ITestResult result, String projectName, String defectType, String defectSummary,
        String defectDescription, String defectReporter, String defectAssignee) {
    try {
        if (result.getStatus() == ITestResult.FAILURE) {

            /* Create new issue */
            Issue newIssue = jira.createIssue(projectName, defectType).field(Field.SUMMARY, defectSummary)
                    .field(Field.DESCRIPTION, defectDescription).field(Field.REPORTER, defectReporter)
                    .field(Field.ASSIGNEE, defectAssignee).execute();
        }
    } catch (JiraException ex) {
        System.err.println(ex.getMessage());

        if (ex.getCause() != null)
            System.err.println(ex.getCause().getMessage());
    }
}

用有效的 Jira 凭据替换 JiraUrl 和凭据。

对于每次失败,您都可以在 Jira 中记录缺陷。将来您可能希望为其添加一些智能,例如在创建新票之前查找重复票。

【讨论】:

  • 您好,谢谢分享,这个类名应该是什么?我们也可以更新通过/失败状态吗?
  • 类名可以是任何东西。对于每个测试结果,我们可以更新 JIRA 票证状态(如果尚未创建,则创建新票证)。这样做的方法: 1. 在你的测试中尝试/Catch Assert 语句。 2. 在 Catch 中,调用 create new issue 方法并添加 if 条件,在创建新的 JIRA 票证之前检查问题摘要(因为不允许重复摘要)
【解决方案3】:

有任何方法可以添加我在 selenium 中创建 Jira 票证时拍摄的屏幕截图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2015-08-07
    • 1970-01-01
    • 2012-07-22
    • 2019-06-22
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多