对C/S结构信息系统进行性能测试的几个关键问题

在针对C/S结构的信息系统进行性能测试的时候,因为客户端实现机制的不同,往往会遇到很多棘手的问题。采用何种测试方法进行测试就是一个首先必须解决的问题,往往很多测试工程师都感到非常困惑。

  在进行了一番技术研讨之后,在本文的案例中,对于C/S信息系统进行性能测试的时候,采用的是自动化性能测试工具LoadRunner调用自动化功能测试工具Quick Test Professional脚本的方法实现性能测试。其实,对C/S结构信息系统进行测试的时候,重点不在使用LR,而在于熟练使用QTP,本文正是在总结项目经验的基础上,深入探讨了使用QTP的多个关键技术问题,愿与业内同行进行深入探讨,共同提升测试能力。

  1、QTP无法捕捉到菜单栏对象

  问题描述:用鼠标正常点击菜单栏,但是QTP捕捉不到菜单栏

  解决方法:这是属于对象不识别的问题,当鼠标点击菜单栏的时候,把对象识别的方式换成低级录制方式就可以捕捉到了。(这是QTP对象识别的第一法宝)

  2、用QTP捕捉对象时,鼠标操作不起作用了

  问题描述:厂商进行了二次开发,但是所开发的子窗口,用鼠标在菜单栏里打开,QTP根本捕捉不到这个新对象。

  解决方法:换一种方式,不用鼠标,用键盘来捕捉!用键盘的上下键移动到相应要打开的地方,用Enter键就可以了,这样便可以捕捉到对象了,而且还不容易出错。(这是QTP对象识别的第二法宝)

  3、弹出窗口后,QTP无法捕捉弹出来的窗口对象

  问题描述:窗口弹出来了,但是点击其中Button后,QTP无法捕捉对象。

  解决方法:在回放中发现,弹出的二次开发窗口并没有激活,界面呈灰色,所以在脚本录制时,弹出窗口后,先用鼠标点击一下窗口以便激活窗口。这样在回放的时候就可以看到窗口被激活了。里面的对象也随之可以识别了。

  4、QTP当从对象模式换成低级录制模式的时候引起变化

  问题描述:在录脚本过程中,采用的是对象识别模式,但是当需要换成低级录制模式时,这时候需要鼠标点击QTP,选择低级录制模式,然后再点击被测软件,其实这些操作都已经被记录到脚本里了,有时还引起了被测软件发生变化,给录制脚本带来很多麻烦。

  解决方法:这个问题是一个需要注意的问题,在我们录脚本过程中,当需要从对象模式转换成低级录制模式时,用Alt+Tab键就可以了,不要再点击QTP,然后再点击被测程序了,这样会增加很多步骤,回放脚本的时候也容易出错,用Alt+Tab键最灵活也最方便。

  5、在QTP的对象库里添加对象,用“小手”进行对象识别时,没办法进行操作软件了

  问题描述:用Spy进行对象识别的时候,鼠标会变成“小手”,可是我要捕捉的是对象里面的对象,比如帮助下拉菜单里的子项,没法操作,也就抓不到对象。

  解决方法:这个问题属于一个技巧性的问题,解决的方法是:在“小手”的情况下,按Ctrl键,“小手”自然就变成鼠标,和平时操作一样了,操作之后就可以捕捉我们想捕捉的对象了。

  6、QTP的自动化脚本录完了,可是还想增加检查点,怎么办?

  问题描述:脚本已经录制完成了,可是在当天新的测试规范中需要加入新的检查点,怎么办?我想加检查点,可是发现QTP中加检查点的那一项是灰色的,以我的经验我知道这是需要在录制脚本过程中才能加检查点的,难道重新录制脚本?

  解决方法:加检查点,不需要重新录制脚本,有三种灵活的方法:第一种,点击脚本的不同步骤,在Active Screen中,可以发现被测程序的截图,如果你要加检查点的控件在这个截图中,那么你用鼠标点中这个控件,右键,会发现有让你加检查点的选项,这样就可以加检查点了;第二种,当你发现在程序截图中没有你要加检查点的控件,如果在上下文中有过同样控件的检查点,那么你把该语句直接拷贝过来,然后把该检查点的属性改成你想做的操作就可以了;第三种,如果前两种方法都不行,那你也不必重新录制脚本。你在要加检查点的步骤的上一步设个断点,回放脚本让程序运行到这个断点,然后停掉脚本,然后重新录制脚步,注意,这可不是重新录制,而是中间录制,这个方法太灵活了,然后像真正录脚本一样,加入你想加的检查点就OK了。

  7、QTP自动化脚本的检查点的类型很多,如何选择?

  问题描述:有标准检查点,有图片检查点,文本检查点,这么多类型该怎么选择?

  解决方法:一般情况下,用标准检查点就可以了。文本检查点是检查在屏幕上、窗口上、Web页面上的文本,一般是针对附带环境里的文本。如果是小图片的话,可以用图片检查点。

 8、QTP脚本回放一直报错,出现对象属性不匹配的问题

  问题描述:脚本回放之后报错,看错误信息,发现好像是对象属性不匹配的问题引起的错误。

  解决方法:这个问题是比较深刻的,需要对QTP的对象识别原理有一定的认识。QTP有一个对象库,把所有识别的对象都放到了这个库里,在这个库里每个对象又有相应的属性,在回放的时候就是通过比对这些属性来识别不同的对象。这里报这个属性不匹配的错误,你需要把对象库里的对象调出来,然后用“小手”去查看运行界面中的相同对象,你会发现,这两个对象的属性不一样。也就是说,每次当程序运行到这个时候,这个控件的这个属性都会发生变化,就好比LR录制脚步中的Session,每次运行,系统都会分配一个新的值,这里的控件也是同样的道理。你要做的第一件事就是找到有哪些属性不匹配,你就在QTP的对象库中把它删掉,运行一下看看。如果系统又报错,说不止有一个对象是你想要的对象,说明,你删了属性,但是这些多个控件就无法区分了,你需要再增加一些新的属性,使不同的控件有个区别,这样应该就可以了,脚本就可以顺利运行了。(QTP对象识别的第三法宝)

  9、C/S录脚本最重要的地方

  C/S录脚本最总要的地方,莫过于对象识别的问题了,对于这个问题,在上面也提到过,这里做个总结,无过于这三大法宝:第一,对象识别的模式换成低级录制的模式;第二,对象识别的模式换成键盘识别的模式;第三,属性不匹配,就增删一些属性就可以了。

  10、Studio开启状态,脚本回放错误

  问题描述:在厂商的Studio环境开启情况下,录脚本或回放脚本,报错。

  解决方法:这种情况下,需要把厂商的Studio环境关闭,不能在开发状态下录脚本或回放脚本,会报错的。

  11、QTP脚本中加事物点的位置要求变动

  问题描述:在新的测试规范里,要求变动事物点的位置。

  解决方法:这个问题的解决体现了QTP灵活编辑脚本的功能,不需要重新录制脚本了,只需要在脚本中,找到需要加事物点的步骤,然后把脚本中事物开始和结束的脚本语句剪切过去就行了。

  12、QTP脚本录制完了之后,是非常有必要进行优化的

  问题描述:仔细观看自己录制好的脚本发现,比如在text框中输入值的时候,会看到输了一个“5”,然后又删了“5”改成了“6”。

  解决方法:这个问题就反应出,在脚本录制过程中难免会有一些失误,脚本虽然录制完了,但是还需要优化!针对上面这个例子,就需要在脚本中把多余的步骤删掉,以优化脚本,提高脚本的性能。

  13、实现C/S并发测试的机理

  问题描述:因为用LR录C/S脚本,在Socket的协议下,脚本没有可读性,所以为了实现C/S的并发测试,采用LR调QTP脚本进行并发测试的方法。可是一台机器只能开一个QTP,如果要并发100,难道找100台测试机吗?。

  解决方法:不是的,这里采用善巧的方法,那就是采用Windows Server 2003的系统,在一台机器上开多个远程桌面,解决测试机不足的问题,虽然说效率以及真实性会有一定的质疑,但是这已经是很好的方法了。

  14、怎样让QTP脚本循环多次?

  问题描述:LR中可以设置Run Logic的次数,但是怎样让QTP脚本也有这个循环的功能呢?

  解决方法:QTP脚本中,在最开始和最后加进入for循环语句,就OK了,目前使用的是加语句的办法。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-11 03:08:51

对C/S结构信息系统进行性能测试的几个关键问题的相关文章

中国兵棋工程总师胡晓峰少将演讲:指挥信息系统的智能化挑战

兰德公司曾就"信息时代的战争"等系列战略性项目开展研究,认为面对快速发展的信息及通信能力,迫切需要"一个更加深刻的指挥与控制理论".面对复杂的国际局势,中国目前的智能作战指挥信息系统处于何种水平,人工智能的快速进步会为这一领域迎来哪些机遇?国防大学胡晓峰教授在第四届中国指挥控制大会上的主旨演讲给出了答案. 胡晓峰认为,目前,几乎全球的作战指挥信息系统都面临着"智能滞后"的难题.未来战争需要快速决策.自动决策和自主决策等,这对智能辅助提出了很高要求

关于树型结构的表,及排序的问题

排序|树型结构|问题 刚才一同事碰到一个树型结构表的排序的问题,让我想到一个隐藏很深的BUG.我通常对树型结构的表都是这样设计的:在表中与排序相关的有三个列,ID,ParentID, TreeKey ID:本条记录的唯一主键ParentID:父记录的编号TreeKey:表示层级结构,形如xx.xxx.xxxx 关键是TreeKey,我以前都要求存入父ID的编号,像这样 ID                              ParentID                        

实现树型结构(一)

树型结构 实现树型结构(第一部分)作者:ACE      最后更新:06/08/2000      类别:原创 先看一下示例,如果你感觉尚可,就继续阅读本文http://www.coolbel.com/ace/articles/test/msdn.asp. 1. 简述 对于大家来说树型结构是很熟悉的一种模型.它的应用十分广泛,比如组织结构,物料清单,资料档案管理,资产管理等等都是以树型结构为基础.在现实生活中,有许多事物可以抽象为树状结构.这种结构可以简化对某些事物的理解,使概念清晰. 2. 表

从SEO的角度分析四种常见的网站导航结构

在我们为一个站点制定SEO策略的时候,我们需要重点考虑到的一个问题就是网站的导航.一个站点的导航栏就犹如是一本书的目录,其具有内容的检索.报道.引导等功能.作为一名访客,我们可以借由站点的导航制导网站的主题和定位,具有引导访客的关键作用,由此站点的导航在一项优化项目中有着举足轻重的位置.谈到网站的导航,我们就需要知道导航的结构,一般导航的结构类型可以分为四类,下面笔者就立足SEO的角度分别分析这四种常见的导航结构的效果. 1.主导航结构   站点的主导航结构位于站点的头部位置,通常一个企业站点的

【AMD】AMD优化成本结构 发力低功耗、新兴市场和云计算

AMDhttp://www.aliyun.com/zixun/aggregation/17539.html">公司宣布了一项架构调整计划,将采取一系列旨在提高运营效率的举措,以加强公司的竞争力,不断满足全球广大客户需求,建立其在低功耗.新兴市场和云计算领域的领军地位. "通过精简成本结构,让全球员工专注于关键的增长机会,AMD的竞争力将得到加强,我们将能够大力推行一系列战略性举措,以加快公司未来的发展,"AMD总裁兼CEO 罗瑞德表示."我们采取这些措施是为了

看看你这个软件测试人是什么水平

 外语水平 了解--掌握该语言语法,可以进行简单工作文档的阅读.书写,能进行基本口语交流 一般--熟悉该语言下的计算机工作环境,能够熟练阅读并编写该语种工作文档,能进行日常口语交流 熟练--母语或类似母语程度,熟练使用该语种计算机环境,并完全具备行业内听.说.读.写等表达能力 精通--在该语种工作环境下具有丰富的经验,能在正式商务文件起草与商务谈判中熟练驾驭该语种的表达 功能自动化测试工具使用经验 了解--仅具有个人学习经验,掌握工具的基本功能和操作方法 一般--了解自动化测试过程管理,并能对工

亚信安全:纵深防御落实等级保护服务 自主可控让用户“安心”

在"互联网+"的发展大潮中,创新发展和信息安全保护是一体之两翼,遵循信息系统安全等级保护要求,实现关键系统与设备的自主可控对于维护国家信息主权,降低安全风险有着重要意义.目前,亚信安全通过对云安全.APT治理.移动安全等新兴安全关键技术的自主掌控,立体化的安全纵深防御解决方案,在安全等级保护市场不断拓展. 安全威胁持续精进 等级保护建设亟待推进 如今,我们进入了一个技术创新高速增长的时代,安全威胁的种类和数量不断刷新纪录.亚信安全发布的<2016年信息安全威胁预测报告>中认

立法保护关键信息基础设施意义重大

随着网络和信息技术的迅猛发展,网络安全问题日益突出,严重威胁国家安全.社会稳定,以及公民.法人和其他组织的合法权益.2015年,我国将"互联网+"行动计划作为一项国家战略,而网络本身的脆弱性及由此可能带来的网络安全问题则成为了制约"互联网+"计划大力推行的瓶颈.因此,从国家层面增强网络安全保护具有迫切需要.然而,长期以来我国网络安全保障法律体系存在立法碎片化.缺乏统一立法理念和顶层设计等问题.2016年11月7日出台的<网络安全法>是我国第一部基本法意义

CIO关注:如何优化人力资源管理

在全球化的背景下,美国的次贷危机引发的金融风暴已经从金融领域扩展到经济领域,并通过投资渠道和资本渠道从美国波及到全球范围.全球市场的低迷.市场需求的萎缩,让众多企业面临着严峻的生存和发展问题. 此前,国家<劳动合同法>.<就业促进法>相继出台.<职工带薪年休假条例>开始实施.一系列的外部环境变化给中国企业人力资源管理带来巨大冲击.企业用工成本飚升,风险加大,对企业现行人力资源管理提出极大的挑战. 冬天来了,企业怎么办?克林顿92年上任美国总统宝座时,正值美国经济的低谷.