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






2.47/5 (4投票s)
一篇为 BugZilla 用户编写的文章,用于从 Excel 文件将旧/新 Bug 导入到 Bug 跟踪系统中。

引言
最近,我们的组织采用了 BugZilla 作为 Bug 跟踪系统,我们需要将大量 Bug 从一个本地 Bug 跟踪系统转移到 BugZilla。我稍微在 Google 上搜索了一下,想找一个实用程序,可以提供从系统外部以任何格式导入 Bug 的功能。但是我没有找到满足我要求的方便的实用程序。这个自定义实用程序将帮助 BugZilla 用户满足将大量 Bug 导入系统的需求。他们还可以对当前的实用程序进行增强,以满足他们在导入 Bug 过程中的需求。
要求
运行此实用程序的基本要求是 bugzproxy-0.2.0 和 xml-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 日:文章创建