SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3027|回复: 2

[推荐] 在不牺牲测试环境覆盖率的情况下实现自动化测试

[复制链接]
发表于 2013-1-24 16:52:50 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2013-1-24 17:00 编辑 & _+ d3 P6 Z3 g  s. U

3 _" m! i8 q1 n: q3 y简介
* N* t1 l# h+ j2 G2 C! {软件测试是软件开发生命周期中的重要组成部分,因为它可以保证该软件中的软件开发人员和拥有者按预期完成工作。由于当今的软件及软件环境越来越复杂,仅使用手动方法管理测试工作变得很艰难。许多组织都在寻求自动化测试工作的解决方案,以降低最终产品遗留回归缺陷的风险。( E$ g& w* g# C& H
幸运的是,现在有很多自动化工具可用于实现自动化测试,其中包括 IBM® Rational® Functional Tester 和 Rational® Performance Tester。最初的问题是与如何自动化测试以及如何随着应用程序的更改维护测试有关。然而,在创建了一套非常成熟的自动化测试套件后,从长远来看,非常实用。
# B  s( U' I) R! G7 }实现测试自动化后,在所有支持的平台(包括 Microsoft Windows 2008 Server、Android、Firefox 10、IBM® WebSphere® Application Server、Oracle、IBM® DB2 等)上运行自动化测试时,出现了另一个挑战。每年由于版本更改、对新平台的支持以及其他因素,都将导致受支持的平台列表发生变化。
; V  r$ u# Y' L* g6 l5 t. f$ D- |6 u取最近一个例子,自版本 3.0 以来,Mozilla 公司又发布了多个版本的 Firefox 浏览器。这意味着重要的不是运行此测试,在所有支持的测试环境上运行所有测试也一样重要。本文解释了您如何确保您的自动化测试自动涵盖了您测试计划中的所有平台,从而确保在发布软件前最大限度地执行了测试范围和缺陷检测。2 N- Z9 s& ?/ l1 K! T3 w  ^

6 U5 z+ K) m3 `3 o7 v/ d$ _图 1. 手动脚本, Y: B7 q* X4 k6 e% x

- `! f; A, ]. b" a3 K" o" K' F

! s/ _+ D, q4 D$ s
( ^: e2 L- ?8 |使用 Rational Quality Manager 实现自动化测试
  B+ j+ R* Y, U$ h: G4 [. J& k. w2 ZIBM® Rational® Quality Manager 是一款基于 Web 的测试管理工具。它集成了大多数领先的自动化工具,包括 Rational Functional Tester、Rational Performance Tester、Rational® Robot、HP Quick Test Professional 等。Rational Quality Manager 公开了 RESTful web API,使其很容易与其他工具相集成。1 e% b3 Q/ W* E7 m
本质上 Rational Quality Manager 提供两类脚本:
# R) _. V0 m' V
  • 使用各种自然语言步骤的本机手动脚本,如上面图 1 所示
  • 远程脚本,表示外部自动化脚本,如下面图 2 所示
    / I, W7 ^* N3 k% d4 l0 \5 F
1 z- ]: P# Z2 E1 c  @" @5 \7 I
图 2. 远程功能测试脚本1 L2 S7 E  V* j7 y
5 ~* g; X! Q% ^  W# R" a( n$ F
手动脚本会捕获自然语言语句中的各个手动步骤(如图 1 所示),因此在手动测试中很实用。另一方面,远程脚本则表示实际外部自动脚本的占位符,这些脚本可通过特定的外部自动化工具运行,如上面图 2 所示。每个远程脚本都有一个类型,该类型是建立在自动化工具的类型基础上。Rational Quality Manager 无法运行远程脚本;它只能协调执行工作:将远程脚本委托给可实际运行该脚本的自动化工具。4 ~' h2 U6 u0 d0 q9 ?
通常会在实验室机器上运行自动化测试,其机器的所测试的应用程序 (Application Under Test, AUT) 和自动化工具均设置为运行自动化测试。要想与 Rational Quality Manager 集成,每个自动化工具需要拥有一个称为执行适配器的轻量实用工具,来填补 Rational Quality Manager 与自动化工具之间的差距。每个 Rational 自动化工具都拥有一个特定于 Rational Quality Manager 的适配器,可将二者连接起来。5 ?) v& x$ k0 ^% f
规划的自动测试的执行
4 R: G" w; q; A# jRational Quality Manager 提供的测试案例可以与手动脚本或远程脚本相关联起来,从而执行该测试用案。规划的结果是创建多个测试案例执行记录。这些记录内容通常涵盖要执行的测试用例、执行时间、执行人,以及使用的测试环境类型(本文最相关)。单个测试用例通常拥有多个执行记录,每个执行记录涵盖一个惟一的测试环境。
- l6 n: ^7 T& [注册一个执行适配器* E+ n" W) s" d, T# v
启动某个特定于自动化工具的适配器时,它会注册到 Rational Quality Manager,从而以供自动化测试执行工作使用。该注册的结果是 Rational Quality Manager 创建两种资源:适配器和实验室资源(测试机器)。适配器表示已注册的适配器,并且链接到实验室资源,后者捕获正在运行该适配器的机器的各种细节。在默认情况下,适配器仅捕获机器名称、IP 地址、域名等信息。" @1 P0 H& N% V( E8 ?9 Q
要想自动提供完整的机器细节,可以将 Rational Quality Manager 同 IBM® Tivoli® Provisioning Manager、Tivoli Application Dependency Discovery Manager 和开源 StAX (Streaming API for XML) 或软件测试自动框架 (Software Testing Automation Framework, STAF) 相集成。Rational Quality Manager 在线帮助中的 “集成” 一节中提供了更多的相关信息(参阅 参考资料 获取链接)。另外,您可以在 Rational Quality Manager 中手动编辑实验室资源,以提供有关正在运行适配器的机器的详细信息。
1 s7 p9 a  R' Y$ O  {Rational Quality Manager 还提供了命令行适配器 (CLA)(参见 参考资料 的链接,获得各种相关的详细资料)。任何可以在命令行中运行的脚本均可以在 CLA 中执行。它可以像 ping 命令一样简单,也可以像包含一个复杂的脚本的 .bat 文件路径一样复杂。安装自动化工具时,通常也包括了特定于该自动化工具的适配器。5 A; B5 z" L* ^% r) P& L7 f
遵循下面的步骤向 Rational Quality Manager 服务器注册命令行适配器:, {# T6 @9 g4 M: \' t
  • 将命令行适配器 .zip 文件从 Rational Quality Manager 安装目录复制到测试机器:: w9 [2 Q$ E0 T: Q- `8 m
    ...JazzTeamServerserverconfqmadapters RQMCommandLineAdapter.zip
  • 将文件提取到某个文件夹中。
  • 确保测试机器上已安装了 Java Runtime Environment (JRE) 1.5 或更高版本
  • 打开命令窗口,并更入您提取和保存该文件内容所在的目录。
  • 在命令窗口中运行以下命令(斜体字表示变量,要换为您的信息):9 H: H( W  o; z9 y0 X
    start.bat -repository https://rqmservername:9443/qm -user user ID -password password -adapter uniqueAdapter ID -adapterName your adapter -projectArea name of the Rational Quality Manager project area4 j1 ]0 O* l& B2 [" i1 z
成功注册后,适配器控制台中会显示一条确认消息,如图 3 所示。
# q9 j& p* O3 e" U, V1 i2 V& b  g* B' K: C  @$ i+ @  M
图 3. 注册命令行适配器& C& h' K7 |: Z/ C1 u# h

7 ?3 T6 a* P8 k0 q% p在适配器控制台中查看已注册的执行适配器8 m) u6 Q' l- w: y/ \  u7 B: n% v
在本节中,您将了解如何查看从不同机器向 Rational Quality Manager 服务器注册的所有执行适配器。0 _- @8 x9 {8 [4 O8 B
  • 打开 Web 浏览器,并输入 Rational Quality Manager URL,例如:; e2 W" B4 w7 ?! k& w1 D3 ~/ X
    https://server:9443/qm/web/console
  • 提供有效的登录信息,登录该项目区域
  • 单击 Execution > Adapter Console 以打开控制台
  • 确认已列出了您从测试机器上连接时使用的适配器,如图 4 所示,并且该适配器的 Health 列显示一个绿色的图标(红色图标意味着适配器注册后很长时间都未激活。)
    ; G8 x1 `  I) n6 S

/ R: e2 c. Z3 d( ?- n, e4 f图 4. 查看适配器控制台, z* j$ k+ m% o  ~) s0 R( ]  H+ P
( O* C5 y; Q" g

" D$ p3 b4 t# J, x: `3 N" n5 Z* n更新测试环境信息5 X# D; T! F8 n7 g/ f* S, A
注册适配器后,Rational Quality Manager 会相应地为运行该适配器的各个机器创建一个实验室资源。通过使用此实验室资源,Rational Quality Manager 可以确定运行适配器的测试环境。如前所述,将适配器注册到 Rational Quality Manager 仅提供极少量有关机器的信息,如主机名和 IP 地址。这些信息远远不够。您可以使用两种方法更新测试环境信息。一种是用 Tivoli 的配给工具来自动更新 Rational Quality Manager(参阅 参考资料 部分中的
0 u& f* ?1 w2 U"Rational Quality Manager and Tivoli" 链接)。
1 B. `+ U, O8 \3 N本文仅介绍如何手动为实验室资源更新测试环境信息:
8 B! M. H# X; B2 h7 [4 y
  • 执行 前一节中的步骤,以打开适配器控制台。
  • 单击 Machine Name 链接,以打开与该适配器相关联的实验室资源。
  • 单击 Operating System 部分。更新其操作系统信息。
  • 单击 Hardware 部分,并提供有关机器的所有细节。
  • 单击 Software 部分,并添加您可更新的所有软件,如 Browser、Database、Application Server 等。
  • 单击 Save 以保存测试环境信息。
      `2 _2 D8 ]0 ?' G" w
为每个已注册的适配器重复执行这些步骤。
7 ?* `8 v' Y- S. x+ E/ l) R% o! D导入外部自动化脚本您可以将由外部 Rational 软件创建的自动化测试导入到 Rational Quality Manager 中。按照 “引用自动化测试脚本” 和相关小节(参阅 参考资料 中的相关链接)中的说明进行操作。通过为每个自动化测试创建一个代理脚本,您应该能够将外部自动化测试导入到 Rational Quality Manager 中。
# V& P$ }6 d3 w" C2 L3 B5 l
/ L( W9 z% Z: H" g7 g6 _& L0 N7 k$ S配置自定义测试环境的范围2 O0 J8 U8 s& v$ I* U
本节提供的详细指南可确保,Rational Quality Manager 在选择或提议某个执行适配器时,运行该适配器的机器能够符合为测试用案执行记录所指定的测试环境要求。; v. G  ~2 E. a# E/ O$ |4 g5 K2 i
  • 以项目管理员 (Project Administrator) 的身份登录 Rational Quality Manager。
  • 单击 Application Administration > Manage Project Properties(参见图 5)。% h/ R4 T+ K; f9 T
6 K' w! X* L) y4 Z4 X* ~
图 5. 管理项目属性" ]7 e+ \( y. w+ C0 V) z

- x/ a8 e% ^5 @& ]+ y8 @
  • 在 Manage Project Properties 视图中的 Properties 部分,单击 Execution Preference,如图 6 所示。
    " N# L7 W) y- I4 K3 w) c  _

5 N* L4 a! w6 O- W图 6. Execution preference' S# o. D" m! V) x; F
5 {' r+ w$ m0 B. O; q

% @3 |6 M8 ^7 G. q$ x, _
  • 在默认情况下,Rational Quality Manager 在执行自动化测试时不会尝试匹配任何测试环境。要改变此行为,选择 Custom Search 单选按钮,然后选中测试环境(操作系统和浏览器等)类型的复选框,表明在搜索适配器时希望匹配这些环境元素。如果想匹配具体的测试环境,请选择 Environment 单选按钮。
  • 单击 Save 以更新执行首选项。
      p, T# ~& u7 m
通过执行这些步骤后,您已将 Rational Quality Manager 配置为在正确的机器上运行自动化测试。这意味着如果您创建了一个执行记录以在安装了 Firefox 浏览器的 Windows XP 上执行,则 Rational Quality Manager 将验证所选的机器是否符合测试环境的要求。
3 n5 |7 K. H6 x  o8 s5 }使用测试单元实现稳固的测试平台5 r+ }5 d; g$ W: J( {
通常都是多个团队同时参与单个项目。每个团队都有其自己与 Rational Quality Manager 项目相连的一组执行适配器。当然,您可不希望您的测试会干扰他人的测试环境。通过使用测试单元 (test cell),您可以限制将要执行自动化测试的机器范围。
: @: I2 W6 L# A9 V6 G# X要创建测试单元,请执行以下操作:- l* T* g" S/ l; c
  • 单击 Lab Management > Create > Test Cell。
  • 提供测试单元的逻辑名称。
  • 单击 Lab Resource 部分下面的绿色加号图标(参见图 7)。
  • 添加您希望运行测试的所有机器。
  • 单击 Save 按钮保存该测试单元。
    ; d) j3 [6 Z) N2 {, y$ B0 Z/ F& M
0 l4 O3 k9 o! Q/ ^4 e
图 7. 测试单元8 p" a0 n. O; d! [! W, |$ r
! M2 t/ H1 R5 i; z9 w4 k

. X1 U! X9 i% V3 B" W+ W运行一个自动化测试2 T2 Q- P7 j' V3 y2 O
生成测试用例执行记录后,您可以手动运行每个记录,方法是单击 Browse Test Case Execution Records 视图中的 Run 按钮。当您希望根据需要运行单个自动化测试时,这种方法很有用。9 ~6 {2 H  p, ?3 z" \/ T. b" h
通常,您可能希望创建一个自动化测试套件,并运行整个套件,以节省时间。在某些情况下,您可能想要根据某种日程安排定期运行自动化测试。您也可能想在任何时候创建新版本时,运行自动化测试,以确保在版本中不会出现回归问题,并且在整个测试团队开展测试工作之前就找出问题。在本节中,您将学习如何为自动化测试手动运行测试套件,以及更高级的选项,设计一个可按计划运行多次自动化测试的工作流程。) S3 h. o0 k" g3 c5 G
使用测试套件运行自动化测试
# D5 U/ I( P" q" Z
  • 按照信息中心给出的说明创建一个测试套件(参阅 参考资料)。将所有的自动化测试用例添加到其中,并确保为每个测用例指定了测试环境。
  • 要指定测试环境,请执行以下操作:7 J- u! M: {$ Z, D% o" k- I+ e
    • 查看所需的行,然后单击 Change Execution Properties
    • 选择测试环境。
    • 单击 OK,然后保存该测试套件。  o0 p! M+ ?' ], c
  • 在测试套件编辑器中单击 Run
  • 在默认情况下,Rational Quality Manager 会为每个测试选择一个适配器。要更改默认适配器,请单击 Edit Adapter。您也可选择测试单元,让 Rational Quality Manager 在运行时分发各个测试。这样,可允许指定测试单元中的软件在运行时根据适配器的可用性来完成适配器的选择工作。
  • 选择 Run in parallel(以防各个测试之间没有依赖关系),以最大限度减少套件执行的总体时间。
  • 单击 OK' v. e; ?7 L  F/ s* l) T& N. N9 L$ M2 m# V
自动化测试的日程按排
: U" e" n  I9 Y( V  G
  • 单击 Execution > Create Execution Schedule。
  • 提供测试安排表的名称。
  • 选择可用的测试计划安排选项(参见图 8):0 d) u/ L" F8 _- O6 R
    • 安排在指定的时间执行一次
    • 安排在每天指定的时间执行
    • 安排在每周指定的日期执行
    • 根据版本可用性来制定日程安排' S4 i- R) _& c" ~- A9 @) L: Q
注意:
, W9 U# R" o( c前三个选项都是根据时间来安排执行情况。当您想在每次创建新版本时运行测试,那么最后一个选项更加实用。# t9 S% c3 N4 O/ {9 }) N; c  f
" G1 a  S& |5 O, Z
图 8. 日程安排的类型
6 L3 ]% ^/ s+ t
. [9 `5 k8 D2 T# f, D( ?- J9 G$ s) b6 s$ J( F6 A6 d! l% x. L& x
  • 在 Steps 部分中,单击 + (加号)按钮添加一个测试套件执行记录,如图 9 所示。通过过滤找寻所需的记录,然后将其添加到 Steps 部分中。您可根据需要随意添加执行记录。
    6 ?2 `7 B0 l6 C- \$ H' H- n+ _

" h9 V: S0 p) V# s4 B0 m图 9. 添加一个日程安排步骤0 K+ r: ]9 O# \: d0 e" h: y: F

- |" s. D( {; _& c* R  d$ e1 O
, z5 a* N6 {. Z: w6 i
  • Rational Quality Manager 会自动为执行工作选择可用的适配器。但是,为了在运行时更好地使用可用适配器,请选择工具栏中的 Choose machines at run time。选中的适配器将被设置为 "Search runtime",如图 10 所示。. \) u1 H/ U' m8 j2 @; u: Q

( U6 k  X- h, k$ D7 v. L9 @9 F图 10. 在运行时搜索适配器, j0 o) f! |6 ~( w5 c
/ |" f8 }& }; S2 }" a1 ]
4 W+ J. ?2 H/ a6 J" ~* J5 d
  • 如果想隔离 Rational Quality Manager 机器(其中的 Rational Quality Manager 应该可以搜索可用的适配器并且不干扰其他的测试环境),则可将测试单元与执行日程安排相关联。
  • 单击保存% u: w* o4 C4 b  @" M+ D
当触发某个日程安排时,已添加到该执行日程安排中的所有步骤将依次执行。
8 k! K* G1 Z% l# i) X/ ^: U7 c6 M; m提示:
  I# X( t0 X3 S5 `# \/ R$ {要管理已安排好的作业,可选择 Next scheduled time。要取消某个日程安排,可单击 Execution > Browse > Scheduled Jobs
$ P$ c: [2 \1 g
! s4 s) m  U. _1 e
& `% G$ D4 B, M5 g, p" r
结束语
% j. q" B) o0 w, ~4 V2 M在本文中,您了解了如何使用 Rational Quality Manager 针对各种类型的测试自动化工具(包括命令行脚本)运行并安排自动化测试。本文解释了如何配置 Rational Quality Manager,以使自动化测试根据测试计划在测试环境中运行,并确保已正确覆盖所有支持的平台。您还了解了如何使用测试单元更好地管理自动化测试。5 h) E  F* p8 f$ }
1 u2 Z1 }8 x4 a  H5 j/ I2 W2 D1 c+ n

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2013-1-24 17:03:33 | 显示全部楼层
测试单元的样例代码:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-24 17:03:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-19 10:49 , Processed in 0.074266 second(s), 7 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表