还剩3页未读,继续阅读
文本内容:
QuickTestProfessional模拟笔试题
一、简答题
1、QTP有哪几种录制模式?答案正常录制模式、模拟录制模式(AnalogRecording)和低级录制模式(LowLevelRecording)
2、LoadRunner和QTP的工作原理有何不同?答案LR:基于协议的性能测试;QTP:基于UI对象的功能测试LR录制原理捕获数据包录制的前提是能识别协议报文;QTP录制原理消息机制,截获消息录制的前提是能识别控件LR是性能测试工具,侧重的是压力,负载,容量,并发等测试;QTP是功能测试工具,针对功能的测试录制的协议不同QTP是基于GUI的功能测试.QTP的录制和回放都是真实的操作客户端程序的各种GUI控件回放时会真实启动客户端程序.而LR只是录制了客户端和服务器之间的通信数据回放时只是这些通信的数据而QTP不启动客户端程序.就无法对客户端界面控件进行验证,失去GUI测试功能比如,注册一个论坛,QTP在回放脚本的时候会输入每个基本信息的动作,然后发送这个表单到服务器,而LR录制的是通信协议,就不会回放输入每个基本信息的动作了,而是直接把已经保存的表单信息直接打包发送到服务器[附LoadRunner和QTP的工作原理]QTP里的对象有两个概念,一个是TestObject(简称TO),一个是RuntimeObject(简称RO)TO就是是仓库文件里定义的仓库对象,RO是被测试软件的实际对象QTP识别对象,一般是要求先在对象仓库文件里定义仓库对象,里面存有实际对象的特征属性的值然后在运行的时候,QTP会根据脚本里的对象名字,在对象仓库里找到对应的仓库对象,接着根据仓库对象的特征属性描述,在被测试软件里搜索找到相匹配的实际对象,最后就可以对实际对象进行操作了loadrunner会自动监控指定的URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应
3、测试计算器时,如何加入所有控件?怎样将加入的控件导出,以便下次再用?答案1)加入所有控件方法打开QTP,点击Resources菜单-objectRepositories(对象库)-addobject手型图标点击计算器的标题-allobjecttypes-ok;2)将加入的控件导出可以使用共享对象库功能,点击当前objectRepositories-File-点击ExportlocalObjects,可将当前对象库导出成扩展名为.tsr共享对象库以供其他脚本或其他Action使用
4、QTP中global和local的区别?两者的迭代次数分别在哪里设置?答案global是全局的,有几行数据程序就要回放几次,不能重新设置local是局部的,有几行数据action就要回放几次设置action的重复次数的操作:单击action选择actioncallproperty即可进行选择.设置global的重复次数的操作:File-Setting-Run
5、用QTP录制脚本后如何修改脚本能够增加其灵活性?答案1)数据驱动测试(使用QTP的DataTable参数化、Action参数化、环境变量参数化等脚本参数化的方法)2)将可重用的操作抽象出来,封装成方法,这样通过传递不同的操作我们就可以完成不同的软件行为;Action的复用3)将测试脚本与测试数据文件分离开来,这样一个脚本就可以驱动不同的测试数据进行测试;4)在对象识别上,应该将对象识别的过程和对象的特征相分离避免将所有的脚本都线性化的写到一起,提高脚本的可维护性
6、QTP中ObjectSpy的作用?能否用它来添加对象,如果可以说明步骤,如果不可以请说明如何添加答案QTP中ObjectSpy作用查看对象,在查看窗口里有列出这些接口,包括属性和方法但ObjectSpy不可以添加对象添加对象的方法是Resources-objectRepository-addObjectstoLocal-通过“手指”图标查找自己要添加的对象,进而添加到对象库51Testing软件测试网:Z:hV3]ZgxY
7、如何修改共享对象库中的值并使之生效?答案方法一打开QTP,点击Resources菜单,进入ObjectRepository,右键点击要修改的共享对象库的对象,并点击copytoLocal,然后可以进行相应的修改方法二通过对象库管理器进行修改,在管理库中选择共享对象库文件,进行编辑修改
8、Action1中参数传递到Action2中有哪几种方式,请分别加以说明答案:共有三种方式,1)通过DataTable共享,DataTable对于每个Action都是可见的,如通过全局数据表(GlobalDataTable)来共享数据;2)通过环境变量共享,环境变量也是Test工程的共享变量如自定义一个环境变量name,并为其赋值,则Test中不同Action都可以使用该参数;3)通过ActionParameters的参数传递,对Action的属性设置和对调用的属性设置来进行参数传递,只有有调用关系才能共享如在Action1中执行如下语句RunActionAction2oneIterationValue并进行相关参数设置,可实现对Action2的调用
9、正则表达式\0\d{2}[-]\d{8}表示什么内容?答案表示国内电话号码其中\表示转义(,表示前面字符出现0-1次,d{2}数字重复两次,[-]表示方括号中连字符出现0-1次,\d{8}表示0-9的数字重复出现8次
10、[QTP]请将下面操作用另外一种描述性编程实现(通过Description对象):WindowError.WinButtontext:=OKindex:=
1.Click答案SetMyDescription=Description.CreateMyDescriptiontext.Value=OKMyDescriptionindex.Value=1WindowError.WinButtonMyDescription.ClickSetMyDescription=Nothing
二、脚本开发题
1、录制QTP自带软件Flight4a系统的订票功能,要求对所订机票的机舱类型进行参数化,即实现定购如下图所示3张不同机舱类型(如图)的飞机票,如何实现?答案参见tests中的(参数化不同机舱,描述性编程机舱,属性不同机舱)
2、如果运行Fight4a的登录脚本前(脚本中需要QTP自动打开登录框)被测对象已经存在多个了(如图)这将导致后续步骤出错,如何能够先将已经打开的登录框关闭再执行登录呢,请将脚本中关闭多余登录框功能补充完整Dimlogin0Setlogin0=Description.Createlogin0text.value=LoginSetT=Desktop.ChildObjectslogin0Fori=0toT.count-1Ti.closeNext
3、如果将DataTable中原本写在Global的参数改写在Action中,则需要加上怎样的代码达到原来的迭代效果?注Action1迭代设为一次Fori=1toDataTable.GetSheetAction
1.GetRowCountDialogLogin.WinEditAgentName:.SetDataTableaadtLocalSheetDataTable.GetSheetAction
1.SetNextRowNext
4、用QTP打开Word并录入内容答案EditWordD:\text.docQTP是一款功能强大的测试软件SubEditWordfilepathcontentSetWordApp=CreateobjectWord.ApplicationWordApp.Visible=TrueSetWordDoc=WordApp.Documents.OpenfilepathWordDoc.Content=content给Word添加内容WordDoc.Save保存Word的内容SetWordDoc=NothingSetWordApp=NothingEndSub
5、用QTP打开记事本写入汉字答案:Window记事本.RestoreWindow记事本.WinEditorEdit.TypeNotepad就是记事本阿,一定要记住哦!
6、“一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的”利用等价类划分的方法,给出足够的测试用例答案
三、性能测试工具使用题
1.[LoadRunner]web系统中,username参数表为file类型,表中有12个值,分别A、B、C、D、E、F、G、H、I、J、K、L测试场景中虚拟并发用户数设为4,迭代次数设为3,参数中Selectnextrow与Updatevalueon分别为UniqueEachIteration与SequentialOnce时,写出迭代3次的取值情况(10分)(Selectnextrow,Updatevalueon) 虚拟用户取值(VUi迭代时取值)(Unique,EachIteration)VU1ABCVU2DEFVU3GHIVU4JKL(Sequential,Once) VU1AAAVU2AAAVU3AAAVU4AAA2.QALoad工具使用题(10分)用Qaload
5.1录制脚本,无法成功并发执行,部分内容如下DO_HttpGEThttp://
192.
168.
107.189/layout/style/style1/icon-bg.gifHTTP/
1.0\r\nAccept:*/*\r\nReferer:http://
192.
168.
107.189/shouwencontrollercommand=GetShouwenhaobusinessid=ar0000011199instanceid=snian=slaiwenleibie=swenhao=tasktype=url=CLIENT_SYN_ID1=1142480138645businesstitle=……(后略)通过对比,发现上述脚本包含2个动态ID号businessid和CLIENT_SYN_ID1,查看对应源文件,有如下内容inputtype=hiddenname=businessidvalue=ar0000011199inputtype=hiddenname=CLIENT_SYN_ID1value=1142480138645请修改上面脚本,使之能够成功并发执行答案:根据题意,须作动态关联char*businessid;char*clientid;businessid=DO_GetUniqueStringname=\businessid\value=\\;clientid=DO_GetUniqueStringname=\CLIENT_SYN_ID1\value=;DO_SetValuebusinessidxbusinessid;DO_SetValueclientidxclientid;DO_HttpGEThttp://
192.
168.
107.189/layout/style/style1/icon-bg.gifHTTP/
1.0\r\nAccept:*/*\r\nReferer:http://
192.
168.
107.189/shouwencontrollercommand=GetShouwenhaobusinessid={businessidx}instanceid=snian=slaiwenleibie=swenhao=tasktype=url=CLIENT_SYN_ID1={*clientidx}businesstitle=……Freebusinessid;Freeclientid;
四、【数据库应用】数据库(10分)已建立两个学生基本信息表,表的结构如下Test1NoNameSexAgeDepartmentPlace2002001张三男20计算机系北京2002002李四女20数学系山东2002003王五男21计算机系北京2002004小红女21数学系河北2002005小李男20数学系辽宁2002006小王男22计算机系浙江Test2NoGradeN型Courses200200167英语200200281数学200200375操作系统200200491网络200200570数据库200200685C语言1)用SQL语句找出是计算机系并籍贯是北京的学生的所有记录select*fromtest1wheredepartment=计算机系andplace=北京2)用SQL语句把计算机系的学生的Department改为信息学院UPDATEtest1SET department=信息学院WHEREdepartment=计算机系3)用SQL连接查询找出成绩大于等于75分的学生的NonameGradeCourses字段的记录Distinct--去掉重复值select distincttest
1.name1test
1.notest
2.gradetest
2.coursesfromtest1test2wheretest
1.no=test
2.noandtest
2.grade75
五、智力题(附加题20分)
1、有十个小球,形状完全相同,其中一个质量不同问怎么用天平测出那个质量不同的小球,只能测三次,那个小球是比其他任何一个重还是轻?答案把它们分成4堆,前面三个都是3个一堆,,标号为1,2,3,剩下一个为一堆,标号4先称1,2,3这三堆放上1,2,有两种情况a、如果平,那么这两个都是标准的,那么换下2,称1和3,如果还是平,那么很明显第4堆那仅有的一个就是了,要看它重还是轻,随意选一个标准的和它一称就知道如果不平,那么就是第三堆里有那个不一样的球看天平往哪边偏如果偏向3,那么那个球比其他球重,如果偏向1,那么则轻在第3堆里,任意选两个,如果平了,那么目标球是剩下的,如果不平,根据前面的判断,看天平的偏向,就可判断哪个是目标球了b、如果不平,看天平偏向哪边,记下那么换下2,称1和3,如果平,目标球则在2,如果不平,还是看天平的偏向,如果仍然偏向1,那么目标在3,偏向3时目标球在1但无论偏向哪里,都已经可以知道目标球是重还是轻了于是在从有目标球那一堆里,任意拿两个,这一步就和1里最后的步骤一样了
3、有三个人面试,经理有五顶帽子,三白色的两黄色的,三个人面壁而立,经理给他们每人各戴一顶帽子,看谁能最快猜出自己头上戴的是什么颜色的帽子三人回过头来你看我我看你,看到另外两个都戴白色帽子,开始都没人猜出来,突然有人说自己戴的是白帽子,经理录用了他,问他是怎么知道自己的是白帽子的?答案abc三个人a想,如果我是黄帽子,b就会猜想,如果我也是黄帽子,c就肯定知道自己是白帽子了;但c一直没有说,说明假设错误;b就会继续推理自己是白帽子,但b没有说,a就可以判断自己不是黄帽子了;a就可以判断自己是白帽子
3、在太平洋的一个小岛上生活着土人,他们不愿意被外人打扰,一天,一个探险家到了岛上,被土人抓住,土人的祭司告诉他,你临死前还可以有一个机会留下一句话,如果这句话是真的,你将被烧死,是假的,你将被五马分尸,可怜的探险家如何才能活下来? 答案我将被五马分尸。