51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1785|回复: 5
打印 上一主题 下一主题

[原创] qtp 自动化过程...(感觉蛮不错的)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-27 14:10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用工具对自己的业务实现自动化测试,是一个很多人都关心的问题。

在我看来,实现自动化测试有两种方式:一、对于特定的系统录制或者编写脚本,实现特定系统的自动化测试。二、自己编写测试工具,对于同一类的软件进行测试。这种软件的基本功能是,抓取被测对象,根据抓取的对象生成测试脚本。这个适合于需要测试的多个项目具有大致相同的特征,比如说,要测试的项目都是管理信息系统,项目中大部分功能都类似。都是新增、修改、删除。功能相似的情况下,要进行测试的范围也大致相同。比如对于新增,都要测试超长啊,无效的数据。这种情况下,编写一个通用的工具,制定公共的测试点,然后根据被测对象生成测试脚本是比较可取的方法。

下面我以  通过QTP工具实现对www.alipay.com中交易管理的自动化测试的过程为例子,说明一下我是如何做的及碰到的哪些问题。

首先说下被测系统的背景知识。www.alipay.com是个支付平台,买家和卖家在这里完成完整的交易支付过程。

下面我从几个方面来说一下实施自动化测试的一个大体的过程,当然这只是最基础的一部分,后面要做的工作还很多。

首先,对所测的业务系统进行分析,抽取公共操作,定义接口参数。目前我简单分析了几个部分:

创建交易;买家付款;卖家发货;买家确认收货;买家发起退款_未收货;卖家同意退款;买家发起退款_已收货;卖家拒绝退款_买家已收货;买家修改退款协议_已收货;卖家同意退款_买家已收货;买家发货;卖家确认收货退款;

其次,确定实现方式,也就是技术框架和细节。包括:

所有这些接口的调用方式;变量及函数的存放位置[位置有外部的vbx文件和QTP自己的文件]。

  在QTP中,不支持调用脚本,只能调用脚本中的某个Action。所以最好把这些基础性的动作放在一个脚本文件中。

    在QTP中,调用Action传参数可以通过两种方法实现:1、利用Action本身的参数。在Acition的属性中,可以定义输入输出参数。2、参数化输入数据。这两种方法都很容易的。

     在别的脚本中调用其他脚本的Action时,还需要两个脚本共享对象库,被调用的Action还需要设置为Reusable。

最后,所有的技术细节都准备好后,就可以开始录制脚本了。

     录制过程中,千万要记得把一些组件或者页面重命名为有意义的,这样在以后维护的时候可以更清楚一些。否则以后你回对着N个相同的页面名称加上“_n"这样的后缀的对象不知所措。

由于第一次接触QTP,工作过程中碰到了一些问题,把重要的列举如下:


1、如何在一个脚本中调用另外的脚本?解决办法:在QTP中脚本无法重复调用,只能调用脚本中的Action。如果一个脚本中的某个Action需要被外部调用,需要设置:a、脚本的属性为Reusable。b、设置脚本的object repository type 为 shared,这样,此脚本的对象可以被别的脚本使用。


2、登陆时用户名和密码的参数化问题:由于系统有两种用户,经常需要用不同的用户登陆,如果是把用户名和密码做成参数化,需要手工频繁修改参数。最后考虑把登陆部分放到外部文件中,以函数的形式调用。

3、如何只运行指定的Action?我把所有的交易动作都放在了一个脚本里,每个动作是一个Action。这样需要组合不同的Action完成不同的业务,需要运行指定的Action。现在还没有找到方法。暂时采用新建一个运行脚本,调用基础脚本里的各种操作完成业务。

4、一个Action的输入参数依赖于另一个Action的输出。这个在参数的传递上用什么来实现呢?用脚本里的全局参数来传递。

5、把登陆函数写到外部vbx脚本后,发现验证点失败,但是用肉眼观察是验证点是可以成功的。说明vbx不支持验证点吗?此问题尚未解决。

6、周五用自动化脚本进行CTU测试,发现用脚本顺序执行创建交易、买家付款、卖家发货交易后,没有记录到第一个动作和第三个动作的MAC地址,交换买家卖家身份重新执行还是这个情况。这个初步估计是脚本的问题,目前尚未解决。

[ 本帖最后由 walker1020 于 2007-7-27 23:22 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-27 14:24:59 | 只看该作者
很少有这样的总结,good
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-7-27 23:23:35 | 只看该作者
    不错,非常详细,值得新手学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-7-27 23:29:30 | 只看该作者
    谢谢这么详尽的总结,向楼主学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-7-28 08:23:42 | 只看该作者
    4、一个Action的输入参数依赖于另一个Action的输出。这个在参数的传递上用什么来实现呢?用脚本里的全局参数来传递。
    >>有个Action的输入和输出的参数,可以实现在Action中传递.

    5、把登陆函数写到外部vbx脚本后,发现验证点失败,但是用肉眼观察是验证点是可以成功的。说明vbx不支持验证点吗?此问题尚未解决
    >>假如把对象也传进去,应该可以能实现的,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-7-28 15:43:03 | 只看该作者
    哪位高手对楼主的问题进行解答,我们这些新手也从中受益。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 08:39 , Processed in 0.076340 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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