将Zephyr测试用例从Jira服务器迁移到Jira云的步骤

时间:2019-03-11 09:12:21

标签: jira jira-zephyr

现在,我们正在从Jira服务器迁移到Jira云的过程中。 我们将Zephyr用于测试用例。 目前,我们有1843个,必须像其他门票一样迁移到Jira cloud。 我们不需要迁移所有测试周期和测试执行的所有历史记录,我们只需要测试用例就可以在以后的测试周期中使用它。

本文包含有关同一问题的答案 https://support.getzephyr.com/hc/en-us/community/posts/205799785-How-to-migrate-from-JIRA-Server-to-JIRA-Cloud

但是该实用程序对我而言无法正常工作,在按“开始导入”按钮后,什么也没有发生。 如何通过Zephyr中的“测试步骤”将测试用例从服务器Jira迁移到云?

1 个答案:

答案 0 :(得分:0)

最后,我从问题中提到的文章中找到了如何通过工具自动导入所有1843个测试用例的解决方案。

  1. 我们的测试用例像往常一样被迁移到Jira云中。它们没有测试步骤,但是具有所有其他信息,例如“描述”,“标签”以及与Jira字段相关的其他信息。此外,我将展示如何将所有步骤迁移到没有步骤的已迁移测试用例。

  2. 转到您的Jira并导出到Excel文件所需的测试用例。可以在此屏幕上完成 https://zephyrdocs.atlassian.net/wiki/spaces/ZTD/pages/12386325/Search+Test+Executions

  3. https://bitbucket.org/zfjdeveloper/zfj-importer/downloads/

  4. 在cmd中通过命令java -jar zfj-importer-utility-0.40.jar运行此jar文件 我试图通过双击运行jar文件,打开了应用程序,但是在配置并按下“开始导入”按钮后,什么也没发生。 只有从cmd打开后,一切正常。 另外,在cmd中,您可以查看进度和错误详细信息,这将有助于您进行调试。

  5. 配置实用程序,如文档https://bitbucket.org/zfjdeveloper/zfj-importer/wiki/Home

  6. 在这一点上,我虽然在按下Start Import之后一切都将是完美的,但是没有。 在控制台中,我发现了很多错误,其原因是测试步骤中有很多换行符。 假设您有一个步骤,在“步骤”字段中有一行,在“测试数据”字段中有一行,但是在“执行结果”字段中,您有带换行符的文本,比如说四行。对于这种情况,在excel中,执行结果字段将是4个不同的列,将“步骤”字段和“测试数据”作为一个合并的列。 而且根据效用规则,如果没有步骤就不可能有结果。 (如果您在“步骤”字段和“测试数据”中有换行符,则可能出现此问题)。 3 cells with result for one step 下面,我将说明如何处理。

  7. 我决定编写Excel函数,该函数将一步从未合并的行中获取行,将它们连接起来并提供导入。 对不起,我的VBA从未使用过。我写的所有内容都可以用一种脚本更好地重写,但是对我有用,我不想在这个问题上花更多的时间,所以放手。 在下面您可以找到4个excel函数。它们中的3个非常相似,区别只是一个字母。最后一个脚本是用于删除已连接的空行,否则将创建带有“ null”值的步骤。

Public Const lastTableRow = 3872

Function ConvertSteps()
    Dim callerRow As Long
    Dim isValueInStepId As Boolean
    Dim isNoValueInNextStepId As Boolean
    Dim result As String
    Dim baseColumnLetter As String
    Dim stepIdColumnLetter As String

    callerRow = Application.Caller.row
    baseColumnLetter = "S"
    stepIdColumnLetter = "Q"

    Debug.Print "processed row is: " & callerRow

    isValueInStepId = (Range(stepIdColumnLetter & callerRow).Value <> "")
    isNoValueInNextStepId = (Range(stepIdColumnLetter & (callerRow + 1)).Value = "")

    If isValueInStepId And isNoValueInNextStepId Then
        Dim i As Integer
        i = 1

        result = Range(baseColumnLetter & callerRow).Value

        Do While Range(stepIdColumnLetter & (callerRow + i)).Value = "" And (callerRow + i) <= lastTableRow
            result = result & "     " & Range(baseColumnLetter & (callerRow + i)).Value

            i = i + 1
        Loop

        ConvertSteps = result
    Else
        If Range(baseColumnLetter & (callerRow)).Value = "" Then
            ConvertSteps = ""
        Else
            ConvertSteps = Range(baseColumnLetter & (callerRow)).Value
        End If
    End If
End Function

Function ConvertTestData()
    Dim callerRow As Long
    Dim isValueInStepId As Boolean
    Dim isNoValueInNextStepId As Boolean
    Dim result As String
    Dim baseColumnLetter As String
    Dim stepIdColumnLetter As String

    callerRow = Application.Caller.row
    baseColumnLetter = "T"
    stepIdColumnLetter = "Q"

    Debug.Print "processed row is: " & callerRow

    isValueInStepId = (Range(stepIdColumnLetter & callerRow).Value <> "")
    isNoValueInNextStepId = (Range(stepIdColumnLetter & (callerRow + 1)).Value = "")

    If isValueInStepId And isNoValueInNextStepId Then
        Dim i As Integer
        i = 1

        result = Range(baseColumnLetter & callerRow).Value

        Do While Range(stepIdColumnLetter & (callerRow + i)).Value = "" And (callerRow + i) <= lastTableRow
            result = result & "     " & Range(baseColumnLetter & (callerRow + i)).Value

            i = i + 1
        Loop

        ConvertTestData = result
    Else
        If Range(baseColumnLetter & (callerRow)).Value = "" Then
            ConvertTestData = ""
        Else
            ConvertTestData = Range(baseColumnLetter & (callerRow)).Value
        End If
    End If
End Function

Function ConvertResult()
    Dim callerRow As Long
    Dim isValueInStepId As Boolean
    Dim isNoValueInNextStepId As Boolean
    Dim result As String
    Dim baseColumnLetter As String
    Dim stepIdColumnLetter As String

    callerRow = Application.Caller.row
    baseColumnLetter = "U"
    stepIdColumnLetter = "Q"

    Debug.Print "processed row is: " & callerRow

    isValueInStepId = (Range(stepIdColumnLetter & callerRow).Value <> "")
    isNoValueInNextStepId = (Range(stepIdColumnLetter & (callerRow + 1)).Value = "")

    If isValueInStepId And isNoValueInNextStepId Then
        Dim i As Integer
        i = 1

        result = Range(baseColumnLetter & callerRow).Value

        Do While Range(stepIdColumnLetter & (callerRow + i)).Value = "" And (callerRow + i) <= lastTableRow
            result = result & "     " & Range(baseColumnLetter & (callerRow + i)).Value

            i = i + 1
        Loop

        ConvertResult = result
    Else
        If Range(baseColumnLetter & (callerRow)).Value = "" Then
            ConvertResult = ""
        Else
            ConvertResult = Range(baseColumnLetter & (callerRow)).Value
        End If
    End If
End Function

Public Sub DeleteBlankRows()
    Dim SourceRange As Range
    Dim EntireRow As Range

    Set SourceRange = Range("Q1", "Q" & lastTableRow)

    If Not (SourceRange Is Nothing) Then
        Application.ScreenUpdating = False

        For i = SourceRange.Rows.Count To 1 Step -1

            Set EntireRow = SourceRange.Cells(i, 1).EntireRow

            Debug.Print SourceRange.Cells(i, 1).Value

            If SourceRange.Cells(i, 1).Value = 0 Then
                EntireRow.Delete
            End If
        Next

        Application.ScreenUpdating = True
    End If
End Sub
  1. 让我们打开Excel文件并将其保存为.xlsm格式以应用自定义功能。

  2. 将功能导入Excel

  3. 在变量lastTableRow中设置的代码顶部,最后一行在Excel中带有“测试用例”步骤。

  4. 现在,我们需要3个新列来保存已传输的“步骤”,“测试数据”和“结果”字段。为此,我们可以使用最后一栏的注释,将其复制并粘贴两次。现在我们有3个空列W,X,Y供我们使用。

  5. 对于W列中的所有行,应用公式= ConvertSteps()汇总步骤(可能需要一些时间)

  6. 对于X列中的所有行,应用公式= ConvertTestData()汇总测试数据(可能需要一些时间)

  7. 对于Y列中的所有行,应用公式= ConvertResult()汇总结果(可能需要一些时间) enter image description here

  8. 现在,我们必须将新列中的值从公式转换为它们的字符串值。为此,请选择所有表格,然后按Ctrl + C。然后按右键并选择过去的值。

  9. 运行DeleteBlankRows宏以删除我们不需要导入的所有行。

  10. 以.xml格式保存文件。

  11. 在“实用程序”中选择此文件,然后按“开始导入”

  12. 在cmd中,您会看到一些错误。在我的情况下,将它们重新设置为没有步骤描述但可以预期的结果。如果像我这样很少使用它们,则更容易在Execel文件中手动更改它。如果它们很多,则可以在自定义函数中处理这种情况。 enter image description here

就这样,此解决方案帮助我导入了1800多个测试用例。 我已经部分导出了它们,到了500,对于我来说,导入所有测试用例大约需要3个小时。