65.9K
CodeProject 正在变化。 阅读更多。
Home

供 BugZilla 用户从 Excel 文件导入 Bug 的实用工具

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.47/5 (4投票s)

2008年12月6日

CPOL

3分钟阅读

viewsIcon

83422

downloadIcon

2418

一篇为 BugZilla 用户编写的文章,用于从 Excel 文件将旧/新 Bug 导入到 Bug 跟踪系统中。

BugZilla importer utility to import bugs from excel file to the system.

引言

最近,我们的组织采用了 BugZilla 作为 Bug 跟踪系统,我们需要将大量 Bug 从一个本地 Bug 跟踪系统转移到 BugZilla。我稍微在 Google 上搜索了一下,想找一个实用程序,可以提供从系统外部以任何格式导入 Bug 的功能。但是我没有找到满足我要求的方便的实用程序。这个自定义实用程序将帮助 BugZilla 用户满足将大量 Bug 导入系统的需求。他们还可以对当前的实用程序进行增强,以满足他们在导入 Bug 过程中的需求。

要求

运行此实用程序的基本要求是 bugzproxy-0.2.0xml-rpc.net.2.1.0。您可以从 Google 代码下载它们

  • bugzproxy-0.2.0:BugZProxy 主要用于与 BugZilla 系统通信。它提供了一个类库来处理 BugZilla 的实体,例如服务器、Bug、产品等。
  • xml-rpc.net.2.1.0:XML-RCP 主要由 BugZProxy 内部使用,用于调用 BugZilla 的 Web 服务和方法来执行诸如 CreateBug、Login、AppendComment 等操作。

除此之外,如果您是一个非技术人员,并且直接使用此实用程序将您的 Bug 从 EXCEL 文件导入到 BugZilla 系统,则需要将您的 Excel 文件采用给定的特定格式,以便此实用程序可以正确读取它。

Excel 文件需要包含以下命名列,并且这些列的可能值写在括号中。某些列的值必须与您 BugZilla 中配置的值匹配。我正在使用我的系统中配置的值。

  • 优先级(P1、P2、P3、P4、P5)
  • 严重性(cosmetic、critical、major、minor、normal)
  • 修复版本(您的 BugZilla 产品的版本名称)
  • 解决者(BugZilla 系统的任何用户名)
  • 评论(如果任何用户在创建 Bug 后(不在 BugZilla 中,但在任何其他系统中)发布了额外评论,则使用此字段。如果不使用,可以将其留空。)
  • 重现步骤(此字段将映射到 BugZilla 系统的“描述”字段。)
  • 标题(此字段将映射到 BugZilla 系统的“概要”字段。)

关于给定的 Excel 文件,还有一件事是,您从中导入 Bug 的工作表的名称必须为 "Bugs"。

如果您是技术人员,您可以自定义代码以满足您的 Excel 格式。

注意: 在创建 Bug 时,对 Bug 详细信息进行了一些假设。其中一些列在下面

  • OperatingSystem 默认为 "Windows"
  • Platform 默认为 "Other"
  • Status 默认为 "NEW"
  • targetMilestone 默认为 "---"

Using the Code

整个实现是相当简单的 VB.NET 代码,用于使用上述类库函数。

BugZProxy 的 Server 类用于以编程方式使用提供的凭据登录到 BugZilla 系统。

Dim oServer As New Server(ServerName.Text.ToString, Port.Text.ToString, _
					Path.Text.ToString,False,Nothing)
oServer.Login(UserName.Text.ToString, Password.Text.ToString, True)

然后,我们可能在单个 BugZilla 系统中拥有多个产品,因此我们将从列表中找到提供的产品以将 Bug 导入到该产品。

Dim iIDs() As Integer = oServer.GetAccessibleProductIds()
Dim oProducts() As Product = oServer.GetProducts(iIDs)
Dim iID As Integer = 0
For Each objProd As Product In oProducts
    If objProd.Name = ProductName.Text.ToString Then
        iID = objProd.Id
    End If
Next Dim oProduct As Product = oServer.GetProduct(iID)

获得产品后,我们将从 Excel 文件填充数据集 - 这是简单的 OLEDB 代码,因此我在此处没有提及。

最后调用 CreateBug() 方法将在系统中创建 Bug 并返回该 Bug 的引用。

oBug = oProduct.CreateBug("", ComponentName.Text.ToString, objDR("FixBy"), _
	"Windows", "Other", objDR("Title"), strTemp, objDR("Priority"), _
         	objDR("Severity"), "NEW", "---", objDR("ResolvedBy"), Nothing, _
	QAContactName.Text.ToString)

历史

  • 2008 年 12 月 3 日:文章创建
© . All rights reserved.