51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5905|回复: 11
打印 上一主题 下一主题

[原创] 测试工具loadrunner扩展开发的一点感想

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-13 22:33:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在应用VC6,大量采用win32 api扩展Loadrunner8.0/8.2的一些外围功能,做到自动调节面向资源消耗目标的合适(临界)并发数,碰到了几个相当棘手问题。

  (1) 在loadrunner controller design 界面上编程实现更改并发用户数
  (2) 确保安全停止在运行的loadrunner但不破坏已存在结果文件,如res.lrr等等

  由于没有loadrunner源代码以及很detail的介绍Loadrunner内部结构的资料,为了突破这些点,耗费了相当的力气。
  如果我们换成对JMeter的外围扩展内,在一堆结构清晰的代码面前,突破这些功能难度可能陡降

经过这些天的尝试,对扩展黑盒工具的难度有一个更加清晰的认知,实践才知道水有多深

下面简单介绍下如何做到编程更改loadrunner并发数的几个思路

     1)EnumWindows/GetWindowText 结合spy++,硬编码检索到窗口层次关系,获取classname=GridControl、windows caption=GridClass的控件,然后利用grid控件的行、列改写数据。

可是classname=GridControl仅仅是注册窗口时的一个友好名字,并非真正实现类。这个实现这个控件的类是什么呢? 这下卡壳了。

从安全工程师哪边拿到LookingGlass.exe、FABERTOYS(进程管理).EXE等工具,企图嗅探出ocx但未果。

其他难度、实现成本比较高、非常笨拙操控grid的方式还有: 利用IDAPro动态调试或者进程注入修改对应内存内容,这个有时间再琢磨下。

    2)修改loadrunner 场景设计文件.lrs的GroupChief内容

由于loadrunner controller designed 界面大量选项,每一个选项可能都对loadrunner结果产生敏感影响。为了弄清楚每一个选项对应文件内容,很土也很管用的方法
一次只更改一个,然后对比变化,最后跟踪发现groupchief 段才是loadrunner 并发数关键所在。

lrs文件格式不是Ini 格式,是mercury自有格式,我们要做的事情就是fgets逐行读取,然后填充入自定义的数据结构(偶采用了链表)。

增加、删除修改并发数就是减少ChiefSettings所在的段,最后用fwrite将数据结构回填。

最后第二个方法成功实现需求。

不过综合权衡下,如果loadrunner升级lrs数据结构,第二种方法是相当脆弱的。

哈,要是偶遇一个mercury工具研发工程师问到grid控件实现类并把头文件和lib给我,然后彻底解决这个问题该多好啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-8-14 08:58:55 | 只看该作者
很好很深奥
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-8-14 09:55:15 | 只看该作者
完全看不懂,有点像哗众取宠,把问题简单话,不要拽那么多深奥的词汇,有必要么
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-8-14 11:12:42 | 只看该作者
    谢谢,扩展了一些思路
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-8-14 13:44:05 | 只看该作者

    回复 1# 的帖子

    说简单就是如何编程实现修改 loadrunner并发数。

    上面的用词都是标准汉字,
    用的技术是windows  api,可以google慢慢琢磨,
    有不大明白的欢迎讨论。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-8-14 14:03:53 | 只看该作者
    更改loadrunner的并发用户数,很强!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-8-15 10:10:43 | 只看该作者
    只要留神,肯定会有LOADRUNNER扩展的需求
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-8-22 20:33:17 | 只看该作者
    不知道其他朋友是否有扩展LOADRUNNER的需求?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-8-22 23:24:12 | 只看该作者
    佩服斑竹,羡慕斑竹,向斑竹学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-8-23 09:22:26 | 只看该作者
    一头大牛又飞过了眼前
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-9-18 11:07:55 | 只看该作者
    说实话,感觉有点掉进技术的陷窝里了,有点本末倒置的感觉。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-9-18 12:41:18 | 只看该作者
    原帖由 liangjz 于 2008-8-13 22:33 发表
    最近在应用VC6,大量采用win32 api扩展Loadrunner8.0/8.2的一些外围功能,做到自动调节面向资源消耗目标的合适(临界)并发数,碰到了几个相当棘手问题。

      (1) 在loadrunner controller design 界面上编程实现更 ...


    LZ你的意思是指:
    目前你想修改并发数,是想读取Controller上的控件对象,读取行和列内容并修改,或者是想读取结果文件lrr当中数据,读取后再修改么?

    想问一下,LR实现并发的时候,是通过读取临时结果文件当中的数据来实现的么,
    也就是说目前在Controller当中设置的选项,LR都是把选项内容存放在临时结果文件当中,然后再读取文件当中内容?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-21 09:04 , Processed in 0.084530 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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