首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Jira服务器迁移Zephyr测试到Jira云的步骤

从Jira服务器迁移Zephyr测试到Jira云的步骤
EN

Stack Overflow用户
提问于 2019-03-11 09:12:21
回答 1查看 1K关注 0票数 0

现在我们正在从Jira服务器迁移到Jira云。我们用Zephyr做测试用例。现在我们已经有1843年了,他们必须像其他的票一样迁移到吉拉云。我们不需要迁移所有测试周期和所有测试执行历史,我们只需要测试用例就可以在未来的测试周期中使用它。

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

但是实用程序不适合我,按下“开始导入”按钮后什么都不会发生。如何使用Zephyr中的测试步骤将测试用例从服务器Jira迁移到云?

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 09:12:21

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

  1. 我们的测试用例像往常一样迁移到云Jira。它们没有测试步骤,但是有所有其他信息,如描述、标签和其他与Jira字段相关的信息。此外,我将展示如何在没有步骤的情况下将所有步骤迁移到迁移的测试用例。
  2. 转到您需要到Excel文件的Jira和Export用例。它可以从这个屏幕https://zephyrdocs.atlassian.net/wiki/spaces/ZTD/pages/12386325/Search+Test+Executions完成。
  3. 从.jar下载https://bitbucket.org/zfjdeveloper/zfj-importer/downloads/文件
  4. 在cmd中,通过命令java -jar zfj- Import -实用程序-0.40.jar运行这个jar文件,我试图通过双击运行jar文件,应用程序会打开,但是在配置和按钮开始导入之后什么都不会发生。只有在从cmd打开后,一切才能正常工作。此外,在cmd中,您可以看到进度和错误详细信息,这将帮助您调试。
  5. 配置实用程序(如文档https://bitbucket.org/zfjdeveloper/zfj-importer/wiki/Home )
  6. 在这一点上,我认为,在按下Start Import之后,一切都将是完美的,但没有。在控制台中,我发现了很多错误,它们的原因是测试步骤中出现了很多行中断。假设您有一个步骤,步骤字段中有一行,测试数据字段中有一行,但是在执行结果字段中,您有带有换行的文本,比如4行。在这种情况下,excel执行结果字段将是4个不同的列,Step字段和Test作为一个合并列。并且基于效用规则,没有步骤就不可能有结果。(如果在Step字段和Test数据中有中断行,则可能会出现此类问题)。

下面我将展示我是如何处理它的。

  1. 我决定编写Excel函数,在一步内从未合并的行中获取行,将它们连接起来并提供导入。对不起我的VBA,我以前从未用过。我写的所有东西都可以用更好的方式和一个脚本重写,但它对我有效,我不想花更多的时间在这个问题上,所以放手吧。下面你可以找到4个excel函数。其中有3个是相当相似的,差别仅在一个字母中。最后一个步骤是删除连接的空行,而不需要创建值为"null“的步骤。
代码语言:javascript
复制
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个新列来保存传输的步骤、测试数据和结果字段。为此,我们可以使用最后一栏注释,复制和通过它两次。现在我们有三个空列W,X,Y作为我们的目的。
  5. 对于W列中的所有行,请将公式=ConvertSteps()应用到agregate步骤(可能需要一些时间)
  6. 对于列X中的所有行,请将公式=ConvertTestData()应用到累积测试数据(可能需要一些时间)
  7. 对于Y列中的所有行,请将公式=ConvertResult()应用到累积结果(可能需要一些时间)

  1. 现在,我们必须将新列中的值从公式转换为字符串值。为此,选择所有表并按Ctrl+C,然后按右按钮并选择过去的值。
  2. 运行DeleteBlankRows宏以删除我们不需要导入的所有行。
  3. 以.xml格式保存文件。
  4. 在实用程序中选择此文件并按Start Import
  5. 在cmd中,您可以看到一些错误。在我的例子中,当没有步骤描述,但是有预期的结果时,他们被释放到情境中。如果它们很少出现在我的例子中,那么在Execel文件中更改它就更容易了。如果其中有很多,您可以使用自定义函数处理这种情况。

所以,这个解决方案帮助我导入了1800+测试用例。我已经导出了他们的部分,500,对我来说,它大约需要3个小时来导入所有的测试用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55098465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档