心念旧安,夙夜忧叹。

ALM(Quality Center) Excel Addin深度剖析

上一篇 / 下一篇  2011-12-17 17:22:49 / 个人分类:原创文章

 声明:由于51testing博客有严重bug,上传图片一直有问题(被切割成一半了),所以做个pdf附件在下面,欢迎大家免费下载正版原创资料,也可以去百度文库下载!以下文章同样适用于Quality Center Excel Addin!51Testing软件测试网t R&LR2Ab w

如何使用Excel插件将需求或者用例导入到HP ALM 11中——ALM(Quality Center) Excel Addin深入剖析51Testing软件测试网1Af-` KvLIJ

51Testing版主songfun

R!Q)G{:X;X"^N2u0

 

Yv$}1~5K1t0

   自从HPQuality Center 10升级为ALM 11后,Excel插件的导入也和以前有些不同了。区别在于:在原来的TD(TestDirector)/QC(Quality Center)环境下,只要安装相关的Excel Addin就可以导入了,但是在ALM11中必须事先注册一下客户端,否则会遇到一个“隐含模块中的编译错误:CTDServer”的问题,如下图:

gm Vi2ZN s c-@9C0

hX5t*Z#hL9s2xB#\v0

   相信这是很多人在导入Excel时遇到的一个郁闷问题。原因是什么呢?请随我来,songfun老师带你探究HP ALM11EXCEL的奥秘。51Testing软件测试网'?![Y V$A8V+[g(I)]

   下面先从最基本的客户端登录讲起。51Testing软件测试网#p&[1~+UL!_4r]7O{ p

   首先给出我的客户端环境:Windows XP + .Net Framework 3.5 sp1 + Visual Studio 2010 + Office 2007 + IE 8.0。注意,客户端的环境配置很重要,因为ALM 11的兼容性非常差。主要有几点:51Testing软件测试网e}x&F4H{ y7j

1.机器必须安装.Net Framework 3.5 sp1Visual C++ 2005 SP1,这是前提条件,而且VC++ 2005 sp1必须为英文版(vcredist_x86 english.exe,2681 KB),不能装中文版(vcredist_x86 chinese.exe,2654 KB),否则会有问题。

]'\8FQ9cn ] _0

2. Office 2007的内部代号是Office12,而ALM对不同版本的Office是有挑剔的。建议装Office 2003/Office 2007。同时请把Excel的宏启用起来,51Testing软件测试网(nUV0|'Lvu.\xf3mF

 51Testing软件测试网C3W,VBGOK0V

{Tt'@;P@c0

X yHg%U*o(rb#x0

3.请确保浏览器是IE7或者IE8的版本,才能打开ALM页面——目前不支持IE 6.0/Google Chrome/Mozilla Firefox等浏览器。51Testing软件测试网Fo"WR\ Y{7QT!b-q

 51Testing软件测试网sr|k4X6B$E

   接下来,用IE8打开ALM11的主页面:http://songfun:8080/qcbin

7C[1@^ @ C0

u5n4X F!Y&ao` v0

点第一个链接进去,见到如下页面:

E4[?Aj0

51Testing软件测试网7?;QU5N@G7{i%K)?

浏览器弹出一个提示,让你安装浏览器的插件,这是ALM的客户端插件。如下图:51Testing软件测试网m}%n5GI9I,R\~

P h8H ]})xYT0

安装完毕,出现登录页面:51Testing软件测试网M;\B-~f\~#~6a

5eH7lyH;~:J;Y0

登录后,进入需求模块:51Testing软件测试网7E!{1vHV

Y3z'F2?wGe;D0

假如要导入需求,那就自己制作一个Excel文件,以下是一个我做好的excelImport.xlsx文件。

6~~3Br0B3ct3d0

51Testing软件测试网M if:m*AUP

要导入的话的,就得安装Excel Addin,这个在上述的主页面的第三个链接Add-ins Page里下载。我这里直接给出下载链接http://update.external.hp.com/qualitycenter/qc110/msoffice/msexcel/HP-ALM-MSExcelAddin.exe

AO9{w%X3~ C0

   但是仅仅只是这些是不够的,否则就会看到前面提到的CTDServer错误。我下面先给出分析,再给出解决方案——知其然还要知其所以然嘛。

W8Q0?:Ok$`B0

   其实这个Excel插件的核心是一个xla文件(xla叫“加载宏”文件,这个后缀是Office2003以前的文件格式,在Office2007中叫xlam文件),简单的说,这种文件就是在你的Excel文档中加载一段代码(Excel中的代码,我们称之为“宏”,英文叫Macro),所谓的插件安装就是往你的Office安装目录下拷贝这么一个“加载宏”文件而已。详细的路径是“C:\Program Files\Microsoft Office\Office12\XLSTART”,核心文件就是TDExcelAddin.xla这个文件。其实你只要把这个文件拷贝到这个目录下,根本就不必安装这个插件!不信你可以试试看!那么这个文件到底是什么文件呢?说白了,就是一个VBA应用程序,看到我下面的分解就知道端倪了。

2wG&HF&i0

   好,我们现在用Excel打开这个文件。见下图:

6i}h^fK0

51Testing软件测试网G$H!i,G!ANj,vv5Vz3k3x

   打开之后,可能你会觉得有点奇怪,好像啥都没有啊?!对了,因为这个是代码,在界面上面是看不到的。好了,在Excel界面上,用快捷键Alt + F11吧(所有Office的编程界面都用这个激活)!51Testing软件测试网.C~pB:pf;e"q

tABmn5aN/]d0

看到什么了呢?哦,原来Office也可以编程的!这个界面就是Visual Basic for Application(简称VBA)的开发界面!换句话说,我们的Office不但可以用来写文档、做表格、做幻灯片,还可以用来开发一个软件!是不是有点神奇呢?!其实我们早期提及的宏病毒就藏身于此。

3f$Qn!R3Syk0

   好了,回到主题。在上图中,是不是看到“VBAProject (TDExcelAddin.xla)”这个对象了?用鼠标点击过去,展开(点那个“加号”)。。。是不是看到了一个密码框?对了,Mercury研发团队为了避免让你看到他们的内部代码,加了锁。不过,songfun老师偷偷告诉你密码吧,是:tdtdtd。试试看!

\&s|#H3^ V)P0

51Testing软件测试网!}e3Y*jF0z

   这下是不是一览无遗了?!呵呵!为什么叫这个密码呢?其实ALM 11HP内部的代号就是QC 11,即Quality Center 11,而QC的前身就是TD,即TestDirector。如果大家用过QC的项目定制(Project Customize)功能,就会知道里面有个管理员角色叫TDAdmin。其实TD/QC/ALM产品只是换了外壳(产品版本演进是TD 8.0->QC 8.2->ALM 11),内部的东西还是叫TD51Testing软件测试网%aVX)[_o

   好了,现在点左边的窗体,展开一个个查看。看到什么了?是不是看到一个个窗体(Form)了?51Testing软件测试网N-zu aD3G%Q

51Testing软件测试网X3Hi)T1S:?

再继续查看它们的代码,比如看看导入窗体的登录模块的Next按钮的代码,你就会看到原来这个Excel插件的功能就是把你的用户名和密码传递给ALM,代码就是这句:m_server.LoginToProject51Testing软件测试网4q3D3q;PS"y*E

51Testing软件测试网(l-LD{r8hg6O0Q2{

   把代码窗口的滚动条拉到最上面,看到了这么几句代码:

'ZAV~+EED1]*R7l0

Option Explicit51Testing软件测试网lWeT*U ^ xw

Private m_server As CTDServer

n-Z%^3NJ4|[0

Private m_settings As CSettings

3q@xe.WW0

Private m_exportType As Integer

1P4r6i'eXk0

   简单解释下,Option Explicit是强制打开变量声明开关(因为Visual Basic语法可以不定义变量直接使用,不像C语言那样要强制声明),目的是让解释器在做语法检查时像C语言一样去检查变量是否有定义过才使用。而“m_”开头的表示这是模块级变量(module),也就是跨Sub的类似于全局变量的变量(模块内的所有Sub都可以共享这个变量)。Private m_server As CTDServer的意思就是定义一个模块级变量m_server,并指定为CTDServer对象类型。好了,看到这里,应该明白开篇里提到的为什么用Excel会报错了吧?对了,就是缺失这个对象!

oeX G!oC ^0

换句话说,这段代码要能运行起来,需要找到一个“神奇的东西”,是这个“东西”使得你可以访问ALM。怎么理解呢?这就好比C语言中,你要用“#include <string.h>”才能运行strcat/strcmp等字符串函数的道理一样。我们这个“神奇的东西”其实是一个“库”,我们把它称之为“COM Library(Common Object Model Library)”,公共对象模型库。其实我们要调用的就是一个COM组件。而对于我们这段ALM的相关代码则需要引用一个OTA COM Type Library(路径在C:\Documents and Settings\All Users\Application Data\HP\ALM-Client\qc)。

a)q4?,HO0

可能大家又会好奇,OTA是什么?OTA全称叫Open Test Architecture(开放式测试结构体系)。这是HP MercuryQuality Center提供的API。这个OTA就是一个让你能够通过外部应用程序(比如Excel/VBA)来访问Quality Center/ALM的公共对象模型库(COM Library)。官方提供了专门的帮助指南API,有兴趣的朋友可以网上搜索或者找我要。51Testing软件测试网 D:E&AOf QJ:~D4^

   回到OTA COM Type Library的话题。为什么会出现CTDServer编译错误呢?因为我们的代码试图引用这个库,结果你没有在电脑上安装过这个库,所以引用失败。报的错误就是“隐含模块中的编译错误:CTDServer”。

"C&[Bw~K0

   既然讲的这么清楚了,请大家去看看“C:\Documents and Settings\All Users\Application Data\HP\ALM-Client”这个目录下有没有东西吧,如果没有,那你就不可能引用OTA API来做Excel的导入。怎么办呢?

TBD]%I?0

   你得安装ALM的客户端,即“HP ALM Client Registration”。到哪里安装呢?怎么安装呢?OK,注意下面几点,照着我说的做:

{_sB`h*|pv:C0

1. 确保自己的计算机已经装好了.Net Framework 3.5 sp1VC++ 2005 sp1http://www.microsoft.com/download/en/details.aspx?id=5638),注意千万别装中文版!51Testing软件测试网5nS MYcj S4v

2. 以管理员权限(Administrator)登录计算机。

({+| j2`+Am0

3. IE7/IE8的浏览器地址框中输入http://songfun:8080/qcbin/start_a.jsp?common=true,这里songfun是我的计算机名,对于各位读者来讲,其他部分不用改,只要把机器名替换成你们自己的ALM的服务器的机器名! 如果大家可以连Internet,也可以连ALM Client在线下载的地址:https://qc.marchofdimes.com/qcbin/start_a.jsp?common=true51Testing软件测试网4ALY.h&Snr GzR

 

MOwO$g)})s)?0

安装完毕后,检查对应路径下是否已经出现了OTA的组件。如下图:

xh8Iu}A"} V0

51Testing软件测试网.BU"J X w!\M/N&LO

   好了,搞定了ALM Client,现在可以安装Excel插件了——我前面说过,其实只要把TDExcelAddin.xla拷贝到Office对应的目录下即可(C:\Program Files\Microsoft Office\Office12\XLSTART),不必安装。

%_K\U-^0

   完成后,打开Excel 2007。点“加载项”,是不是看到了“Export to HP ALM”?好,把刚才的excelImport.xlsx打开,选中你想导入的部分(注意,一定要选中,否则它不知道到底想导入什么内容)——不要把表头(Table Header)也选进来,见图:

]e jT([,TV0

K3P F:n3E}/i4@0

   点击“Export to HP ALM”,弹出一个对话框了——成功了一大半了!不再报CTDServer错误了!如图:51Testing软件测试网mp6qUh)\ d3i

DZ1g,}*p[.@ Z*B0

   好,点“Next”,看到下图:51Testing软件测试网/b*eS6oxQ!}

51Testing软件测试网Y Hj?Fz!VASfC

   输入用户名和密码(确保已经在ALM中添加过),看到下图:

1v?ss6q0

mPv7h }b*a~0

   因为我们这里要演示导入需求的例子,所以选择Requirements,如下图:51Testing软件测试网$qyo+GO

51Testing软件测试网I&kL,d fL*y}1zv

   因为导入的时候要告诉ALM想导入Excel的哪个列,所以这里需要建立映射关系,这里我选择“创建一个临时的映射”(大家工作的时候建议选择上面的,让它记住),如下图:

ic+{^%Y q-E&i_0

51Testing软件测试网0k0oJ5L;E$u,I%d U

   这时候首先要选择的映射的列(字段)就是需求的类型,我们知道QC里的需求有个实体属性叫“Requirement Type”,它指明这个需求是需求的目录(Folder)还是功能性需求(Functional)或者其他,我在Excel中定义好了,就是那个D的列,看到了吗?在下图里:51Testing软件测试网![BTt'u9rS8{)L W+i:t

51Testing软件测试网%|{ z7X't[

   所以我们这里要选择“Requirement Type Column: D”,接下来就是导入所有的Excel中的内容:需求项(Name)、路径(Path)、优先级(Priority)、需求产品(Product)和作者(Author)。其实这里的中文叫什么无所谓,只要你映射好就行。如下图:51Testing软件测试网n N/G3C7i W#o @

Pk-nn#V3I,E0

   点击“Export”,导出到ALM吧,只要你数据没问题,就会看到下面的喜图:51Testing软件测试网&@ i%h%A7s'Q*SQ K

XoL)cQ7N+z0

   真的成功了吗?好,我们登录ALM 11看看吧!51Testing软件测试网ee'Q+t(`)q.Ay&O

"l"]u$jp0

   怎么样?是不是已经导进去了?呵呵!

!pBk c!q.]:r:J-| t0

   关于ALMExcel插件深入剖析就到这里,下次给大家介绍下word插件。喜欢就顶下,呵呵...51Testing软件测试网o&]:WV:S S]
51Testing软件测试网 m2q1K}:|f


TAG:

鹅毛咦的个人空间 引用 删除 鹅毛咦   /   2015-04-21 10:21:36
老师   tdtdtd  进不去呢  ,现在密码是不是变了,另外导入的信息怎么不全而且每次导入的内容都有变化,不知道是哪里设置错了。
xrj8866的个人空间 引用 删除 xrj8866   /   2013-08-27 10:27:11
请教个问题,我现在能导入,完全没有问题,但是每次导入都必须重新输入QC地址和重新创建一个映射,无法记住我之前创建的映射,这是怎么回事啊?搞得新建映射和创建临时映射是一个效果。。。每次都要设置列名和QC字段的对应关系,实在太麻烦了。。
931743010的个人空间 引用 删除 931743010   /   2013-01-29 00:23:13
- - 好像在讲课一样
931743010的个人空间 引用 删除 931743010   /   2013-01-29 00:22:31
5
引用 删除 nachuang113   /   2012-07-25 16:10:50
问题成功解决,这个必须顶了,谢谢宋老师啊
蓝夏 引用 删除 悠悠酱   /   2012-07-01 20:53:09
请教老师一个问题,导入到QC时,到创建临时映射这一步的时候点“next”就没有反应了,会是什么问题呢?谢谢
stevenli的个人空间 引用 删除 stevenli   /   2012-06-13 00:24:26
宋老大就是给力啊!就是压缩有问题。
stevenli的个人空间 引用 删除 stevenli   /   2012-06-13 00:19:54
5
凡叶·依米的个人空间 引用 删除 凡叶·依米   /   2012-04-23 11:35:32
5
凡叶·依米的个人空间 引用 删除 凡叶·依米   /   2012-04-23 11:35:19
学习了~~

压缩包有问题~~
引用 删除 hyoxi   /   2012-02-01 17:51:22
您好,能讲下关于导入Tests文件后,在QC中哪里可以看见么???
@槽神刘叫兽 引用 删除 lyscser   /   2011-12-17 23:39:07
根据QC opne API+VBA在EXCEL里面也可以实现的吧
 

评分:0

我来说两句

日历

« 2024-04-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 453729
  • 日志数: 138
  • 图片数: 4
  • 建立时间: 2006-11-26
  • 更新时间: 2013-08-30

RSS订阅

Open Toolbar