51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 8329|回复: 13
打印 上一主题 下一主题

浅析WinRunner自动化测试框架EMOS

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-20 10:44:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题记
        因为在学习EMOS时在国内找相关的资料,发现国内在这方面的资料几乎是空白,不知道是因为WR在国内用的少呢,还是怎么的。所以就把自己在学习该框架时总结的一些东西分享给大家。当然我学习它时间也不长,所以分析的还是非常浅显,如果有朋友发现有不足之处,还请指正,也欢迎大家和我交流这方面的思想技术,我的QQ为236835793,MSN为  lantian.wei@hotmail.com

一 EMOS简介
EMOS是基于WinRunner的大型的,功能强大的自动化开源框架,是由WinRunner的TSL语言写成。该框架由德国自动化测试工程师开发而成,在全世界许多企业中被验证该框架是高效,稳定的。

二 使用
1.下载EMOS:http://emos-framework.sourceforge.net/
2.将下载的文件EMOS_GPL_v1_4_2解压WINRUNNER的安装目录/lib/下
3.下载一个例子,这里我建议使用FlightDemo
4.将FlightDemo解压到任何目录
5.启动WINRUNNER,在TOOLS-GENERAL OPTIONS-STARTTEST UP中选择FlightDemo中SCRIPT下的startup
6.重启WINRUNNER
7.打开kickoff并运行,在弹出的对话框中提示符如果后面有?的你可以输入YES或NO来表示执行还是跳过;在弹出的对话框中提示符如果后面有数字的,你可以输入数字,表示你要运行哪个用例,当然你也可以用,比如1-5这样的形式。
注意:可能你第一次在跑startup脚本时会报一个错,提示一个无效的字符串,可能是由于源代码不是英语的缘故,使其无法显示,你需要把???改成Sheet1,也就是默认读第一张表。

三 框架的组织结构
有四个核心文件:
1.        FRM 是本框架的核心,核心控制代码都在这里
2.        STD 标准代码,主要是对WINRUNNER的基础函数进行了重写和增加了一些WINRUNNER本身没有提供的功能函数
3.        DDT 数据驱动脚本,主要是对EXCEL的数据的读写处理
4.        emosinit 框架初始化脚本,负责将框架脚本加载到测试中

四 测试实例的组织结构
1.DATA 测试用例文件(测试用例集文件和测试用例文件)
2.SCRIPT 脚本文件和对象库
        2.1 GUI 对象库文件
           2.2 DRV 驱动文件(驱动用例集和驱动单个测试文件,其中main_lib非常重要,必须有AUT_DRV_report,AUT_DRV_load,AUT_DRV_init_steps,AUT_DRV_call_block这四个函数,他们和FRM_DRV_test_driver中的脚本是对应的,否则无法运行,所以在创建项目的时候必须编写这四个脚本
        2.3 LIB 测试脚本文件
                2.31 AUT_LIB,FRM_LIB 笔者认为这两个文件夹可以归并到一起,主要是放置对于整个测试的公用脚本
                2.32 FRM 具体业务流脚本,主要是不可复用的脚本,可以根据具体的业务功能进行划分成多个脚本
3.Startup 初始化测试环境
4.Kickoff 驱动这个测试,入口点为用例集

五 框架的核心思想
通过Testsequence行中实现自动化测试用例的编写,通过Block实现测试脚本的复用(既单个业务功能点),在测试用例文件中一列对应一个测试用例(当然它也可以实现圈套)。

六 总结
不愧是高手们设计的大型框架,这是一个非常经典表驱动的框架,但还称不上是关键字驱动,因为该框架还是需要写比较多的测试脚本的,但已经非常完善,仔细品味会发现现在的QTP可以在它里面找到很多影子,比如该框架中的Block就相当于QTP中的Action,只不过QTP做的更好罢了,不知道当初QTP的设计是不是从这个框架而来,呵呵。。。该框架非常灵活,可以处理非常多的情况,但另一方面又增加了它的复杂性,它的执行流确实比较复杂!笔者觉得该框架的核心思想和出错处理是本框架最大的闪光点。

[ 本帖最后由 lantianwei 于 2008-2-20 17:13 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-2-21 23:05:39 | 只看该作者
不错,支持一下,EMOS我很久以前试过,基本上没怎麽弄明白它的使用
支持lz继续探索下去!想看到更深入的应用,让WR重新应用起来
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-7-16 16:21:32 | 只看该作者
我基本上是看了都不知道是怎么回事
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-25 16:16:26 | 只看该作者
花了半天时间,看了以后基本不知道它在测试中能做什么??
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-10-6 10:28:42 | 只看该作者
简单来说就是qtp..?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-3-17 15:37:45 | 只看该作者
有难度   有挑战
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-7-28 15:12:31 | 只看该作者
看来我要多学习才能看懂!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2009-7-29 13:33:37 | 只看该作者
    这么好的贴子怎么沉了这么久。
    努力学习.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-10-28 10:33:52 | 只看该作者

    回复 8# 的帖子

    开始学习中。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-11-27 22:22:11 | 只看该作者
    学习了下,有问题请教:
    1)按照test sequence调用脚本测试时,block function好像并没有真正消除硬编码,各test primitive实现及GUI object的操作,都是硬编码。不知道我的理解对不,似乎还有优化的空间?
    2)WinRunner哪个函数可以获取某个object所在的窗口呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2009-11-27 22:56:01 | 只看该作者

    回复 10# 的帖子

    1. 确实需要写脚本 也就是你说的硬编码 所以我说它是表驱动框架而非关键字驱动
    2. N年没有WR了,忘的差不多了 你看看有没有像GETPARENT这样的方法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-11-28 19:42:13 | 只看该作者
    谢谢版主!
    EMOS中根据test block调用相应的脚本,不是关键字驱动吗?
    我现在在把block function中的硬编码部分进行修改,实现参数化。可是在对object进行操作时,无法表达对前后操作的关联,遇到难题了。。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2009-11-28 21:46:46 | 只看该作者

    回复 12# 的帖子

    1. 看你对关键字怎么理解的 一般意义上讲 像OBJ.ACTION()这样的才算关键字 比如QTP里的那个关键字视图就是典型的关键字驱动
    2. 把block function中的硬编码部分进行修改,实现参数化
    》这是比较好的做法 可以增加脚本的复用性
    可是在对object进行操作时,无法表达对前后操作的关联
    》不大明白你的意思 但我知道这肯定是可以实现的 你自己努力想想吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-12-8 22:23:15 | 只看该作者
    我的问题解决了。有空了再整理下。。。
    有谁在实际工作中用过EMOS吗,感觉如何?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-25 23:58 , Processed in 0.085844 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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