一.内容介绍 1、概念 2、QTP初级(使用鼠标就可以完成测试) 3、QTP高级(编写脚本完成测试) 二:概念 1、什么是软件测试? 简单的说软件测试就是使用人工或自动化的手段在已有的软件中查找缺陷的过程 软件(程序+文档+数据) 2、软件测试工程师: 需求分析->测试计划->测试用例->搭建测试环境->执行测试->缺陷跟踪->自动化测试->性能测试->安全测试 3、什么是自动化测试? 根据工具在没有人或者较少人参与的情况下,把测试用例形成脚本,使用工具执行脚本的过程 4、什么是功能自动化测试? 使用QTP(selenium)自动化测试工具对被测系统的功能进行测试 5、为什么要执行功能自动化测试? 功能测试中存在大量的回归测试、大数据量测试 自动化测试可以提高测试效率、测试准确性,可以进行更严格的测试,并且可以做到无人值守 注意:并不是所有的软件都需要实现自动化,并不是所有的软件都适合做自动化 6、什么时候需要实现功能自动化测试?(满足功能自动化的条件) a.需求稳定 b.通过冒烟测试 c.测试周期长 7.如何执行功能自动化测试? 使用测试工具执行 流程: 熟悉被测系统 分析需求 设计测试方案 设计测试计划 设计测试用例(录制脚本->增强脚本->调试脚本) 执行测试(执行脚本) 分析测试结果 编写测试结果报告 8、自动化测试对测试工程师的影响? 1)薪资待遇更高 2)提交竞争力 3)自动化测试是一个重要的发展方向(功能自动化、性能测试)、管理、QA、PM 总结:1、什么是功能自动化测试? 2、什么情况下需要执行自动化测试? 3、如何执行自动化测试? 三、QTP介绍 1、QTP是什么? a.QTP是功能自动化测试工具 b.全称quicktest Professional c.QTP使用语言:VBS d.版本10.0,如果要使用新版本,建议使用UFT12 2、功能自动化测试工具: QTP(web系统、Windows) selenium(web系统) TestWriter Robt 3、QTP插件管理 (1)插件管理界面(add-in manager) a.默认安装QTP有三个插件: activex:录制Windows程序(默认支持Windows程序的测试) visual basic:录制VB程序 web:录制web程序(b/s) b.QTP还可以安装其他插件,需要购买 oracle:录制oracle程序 .net:录制oa程序 Java:录制Java... (2)在测试过程中如何选择插件? a.由被测系统实现技术来决定选择加载说明插件 b.如果测试时选择了不必要的插件,QTP的效率会降低 c.如果测试时未选择必要的插件,QTP将无法识别被测系统的对象,并操作被测系统执行测试 (3)如果打开QTP时未显示add-in manager对话框,可以进入qtp界面进行设置 tools(工具)->options(选项)->勾选display add-in manager on startup(显示插件管理工具) 4、QTP的视图: (1)expert view(专家视图):以代码的形式记录录制时测试人员对被测系统执行的操作 (2)keyword view(关键字视图):以表格的形式记录录制时测试人员对被测系统执行操作 a.ltem(项目):记录被操作的对象 b.operation(操作):记录对对象的操作,如click(点击)、set(输入)、select(选择).. c.value(值):记录操作对象 时使用的数据 d.documentation(文档):描述当前步骤的意思,跟测试用例一样 (3)Data Table(数据表):存储测试时使用的数据 (4)Active Screen(当做截图):保存录制时测试人员对被测系统执行的操作 (5)QTP常用设置: a.设置代码运行速度:Tools->Options->Run->Run mode->设置delay each step excution by[] millisecondes(每个步骤执行的延迟时间) b.启动结果报告中的截图: Tools->Options->Run->screen capture->设置save still image capture to results(保存图片在结果报告中),设置为always(总是) c.设置代码字体大小:tools->view options->fonts and colors(字体和颜色) 四、启动被测系统的方式 1、自动启动Windows程序 2、flight系统(QTP自带标准的窗口类程序) (1)启动路径:开始->程序->quick test professional->sample applications->flight(flight4a) (2)登录功能介绍 Agent Name:用户名(4-10位字符) password:密码(mercury) ok:确认登录 cancel:关闭登录对话框 help:帮助,查看密码 (3)订票功能介绍: Date of flight:出发日期(格式mm/dd/yy 月/日/年,必须是未来的日期,大于今天的) fly from:出发城市 fly to:到达城市 flights:查看航班 name:顾客姓名 tickets:票数:(1-10的数字) class:航位(first头等舱、business商务舱、economy经济舱) insert order:插入订单(提交),提交后,左下角会显示进度条,到达100%后,会在进度条上显示insert done...,在order no(订单号)输入框显示订单号 订票后,需要新建一张订单,才能再次订票 (4)打开订单(查询订单)功能介绍 order no:订单号 ok:确认打开 (5)发送传真功能介绍 file->fax order...(不能发送空订单信息) fax number:传真号 send:发送 3、常见的控件对象及操作 a.edit(输入框)--set(输入)type(输入)setsecure(安全输入) b.button(按钮)--click(点击) c.activex--type(输入) d.ComnoBox(下拉组合)---Select(选择) e.List(列表)--Select(选择) f.RadioButton(单选按钮)--set(设置) g.CheckBox(复选框)--Set(设置)Set‘OFF’未选中,Set‘NO’选中 h.Window(窗口)--Close(关闭) 4、QTP的工作流程 (1)录制脚本前准备: a.分析被测系统是否能够实现自动化 b.分析被测系统是否能够与当前的QTP版本兼容 c.熟悉被测系统,确认哪些功能点需要进行测试 (2)录制脚本 a.使用QTP录制脚本,QTP会在KeyWord View和Expert View中形成测试代码(该代码只是录制时操作什么就生成什么代码,要想实现真正的自动化,需要增强脚本) (3)增强脚本 a.为测试步骤添加检查点 b.模拟执行所有测试用例时,需要不同的数据,就要为脚本实现参数化 c.添加控制流程语句 d.实现对Action的调用 e.把复杂的代码封装为Function (4)调试脚本,确保脚本能够正确执行,才能开始测试,根据错误提示信息调试脚本 (5)执行脚本、分析测试结果、编写测试结果报告 5.自动启动Windows程序操作步骤 (1)自动启动指为QTP指定被测系统的路径,让QTP来打开被测系统 (2)启动QTP选择ActiveX插件 (3)点击Record(录制)按钮 (4)在弹出的Record and run Settings(录制和回放设置)对话框中选择第二个单选按钮Record and Run Only on(只在指定的程序中录制和回放) (5)点击了绿色的“+”,在弹出的对话框中Application输入框后点击三个点按钮。找到被测系统的路径,确认 (6)按照测试用例的步骤操作被测系统 (7)点击Stop停止按钮,Ctrl+S保存代码,点击Run运行脚本,查看结果报告 注意:在录制或者回放之前要关闭: a.被测系统 b.关闭杀毒软件 c.关闭翻译类软件 五、启动被测系统的方式 1、手动启动Windows应用程序 手动启动:录制时,不要为QTP指定被测系统路径,测试人员启动被测系统,启动的步骤会被QTP记录下来形成脚本,QTP回放代码时就执行该句代码来打开被测系统 2、实现步骤: (1)启动QTP选择ActiveX插件 (2)点击Record录制按钮 (3)在弹出的Record and Run Settings(录制回放设置)对话框中选择第一个单选按钮Record and run test on any opened windows-bassed applications(录制或者回放任何被打开的Windows程序) (4)从开始菜单打开被测系统,建议不要从桌面或者我的电脑中打开被测系统 (5)按照测试用例步骤录制代码 (6)点击Stop停止录制 (7)切换到Expert view专家视图把SystemUtil.Run之前的代码都删除 (8)保存、运行、检查结果 3、运行时报错Run Error:Object not found(对象未找到) 原因: a.被测系统未打开 b.被测系统被其他程序遮挡 六、启动被测系统的方式 1、自动启动web程序 2、Mtours系统的启动方式 a.启动服务:开始->程序->mercury tours->start server b.启动被测程序:开始->程序->mercury tours->mercury tours 3、打开被测系统,点击首页register按钮,注册一个账号,输入必填项即可 4、实现步骤: a.启动QTP选择web插件 b.点击record录制按钮 c.在弹出的record and run setting对话框中的web选项卡中进行设置 选择第二个单选按钮open the following address when a record and run session begins(当录制和回放时打开下面指定的URL被测程序) d.按照测试用例步骤录制代码 e.关闭浏览器,停止录制,保存代码,进行代码,检查结果 注意:web系统保护建议使用手动录制,如果需要实现手动启动,可以自己编写systemutil.run的代码来启动 总结: 启动被测系统的方式 1、自动启动方式启动Windows程序 2、手动启动方式启动Windows程序 3、自动启动方式启动web程序 七、QTP的实现原理(录制和回放原理) 1、录制原理:封装对象、记录脚本 录制时QTP会把测试人员操作被测系统的对象封装到对象库中,把测试人员的操作形成脚本 2、回放原理:识别对象、操作对象 回放时QTP会读取item列中的对象,去对象库中查找该对象的属性及属性值(如果在对象库中未找到该对象,就报...not found..错误),根据对象的属性及属性值在被测系统中匹配到一致的对象,根据代码去操作对象 3、运行时常见的错误: (1)the "8"winbutton object(对象)was not found(未找到)in the object repository(对象库) 4.这个按钮对象在对象库中没有找到 解决方案:把对象添加到对象库中 方式一:录制时添加对象 方式二:通过对象库添加 a.把被测系统打开,显示出待添加的对象(不能打开多个被测系统) b.在QTP中Ctrl+R打开Object Repository(对象库) c.在对象库中点击“+”按钮Add Objects to Local d.使用手型鼠标点击待添加的对象 注意:如果待添加的对象被遮挡,按住Ctrl键把待添加的对象操作显示,再释放Ctrl键添加对象 e.在弹出的Object Selection对话框中确定对象,OK 注意:如果被添加的对象有父对象,则一并添加 如果被添加的对象有子对象,则可以选择性添加 1、QTP插件的作用是什么?默认三个插件分别是什么? 作用:识别被测系统的对象 三个插件: Activex:录制Windows程序 Visual Basic:录制VB的程序 Web:录制web程序(B/S) 2、Keyword View、Expert View、Active Screen视图的作用分别是什么? Keyword View:关键字视图,以表格的形式对被测系统执行的操作(Item、Operation、Value) Expert View:专家视图,以代码的形式显示对被测系统执行的操作步骤 Active Screen:截图视图,保存录制时对被测系统执行的操作步骤 3、自动启动和手动启动Windows出现的设置是? 手动启动:设置第一个单选按钮 如果测试用例的步骤第一步为打开被测系统,那么录制时,就从打开被测系统开始录制,在代码中生成 SystemUtil.Run的代码 如果测试用例的步骤第一步不是打开被测系统,如从登陆后的业务开始录制,那么录制时,就需要手动把登陆后的界面准备好,再开始录制 自动启动:设置第二个单选按钮,为QTP指定被测系统的路径、 4、运行代码时......Object was not found in Object Repository....的原因是什么? 原因:对象库中找不到代码中描述的对象 解决方案:把对象添加到对象库中 一、运行代码时常见的错误 1、无法匹配被测对象 Cannot (不能)identify the object "Name:" (of class WinEdit). Verify that this object's properties(熟悉) match(匹配) an object currently(当前)0 displayed in your application.(系统) 根据QTP对象库中描述的该对象属性及值无法在被测系统上匹配待一个唯一的被测对象 Line (11): "Window("Flight Reservation").WinEdit("Name:").Set "wangwu"". Tip: If the objects in your application have changed, the Maintenance Run Mode can help you identify and update your steps and/or the objects in your repository. .....much.... 原因: a.被测系统版本升级,被测对象进行了修改 解决方案:把修改后的对象添加到对象库中,把代码中的操作修改为新的对象 b.被测系统未打开 解决方案:查看被测系统启动方式是否正确,检查杀毒软件是否关闭 c.打开了多个被测系统 解决方案:检查回放前是否未关闭被测系统,录制回放设置中指定了多个被测系统的路径 2、使用flight4a录制脚本,回归测试flight3a 问题: a.flight3a新版本购票界面的顾客姓名对象修改为:Customer Name b.Flight3a新版本提交订单按钮对象修改为:Insert 解决方案: a.把Customer Name 对象添加到对象库中,把Keyword View中Item列中的旧对象Name替换为Customer Name b.把Insert对象添加到对象库中,把Keyword View中Item列中的旧对象Insert Order替换为Insert 要求:把代码中Tickets的值修改为13 问题:由于系统要求Tickets的值只能输入1-10的数字,所以当Tickets的值为13时,系统会提示不能输入13 解决方案: a.把系统的提示框关闭,- ----把提示框中的确认按钮对象添加到对象库中 ----在Keyword View中插入新的步骤为点击确定按钮 b.重新输入Tickets的值为有效值,如2,把输入Tickets的代码拷贝一句放在关闭提示框后,把值修改为2 二、对象库中找不到对象 1、添加对象到对象库中 方式三:录制后在Active Screen截图视图中添加 注意:待添加的对象必须在Active Screen中由截图才行 a.在代码中定位一句代码,要求能够在截图视图显示待添加的对象 b.在Active Screnn中右击待添加的对象,选择View/Add Objects c.确认被添加的对象是否正确后点击“Add to Repository”按钮 d.如果需要在对象库中查看,就点击“View in Repository” 2、两个概念 (1)TO:Test Object测试对象,在QTP对象库中存储的对象,可以查看和修改属性值 (2)RO:Run-time Object运行时对象,QTP运行时操作的被测系统对象,只能查看,不能修改 三、检查点 1、应用场景:对测试用例中的预期结果实现检查,从而验证被测系统的功能是否正确 2、检查点的实现原理: 录制时:将预期数据放入测试代码中合适的位置 回放时:QTP自动捕获被测系统生成的实际数据,和代码中的预期数据进行对比,如果一致,在结果报告中记录Passed,否则记录Failed 3、检查点的分类: (1)标准检查点 (2)位图检查点 (3)文本检查点 (4)文本区域检查点 (5)表检查点 (6)数据库检查点 4、标准检查点(Standard Checkpoint) (1)作用:检查RO(Run-time Object)属性值是否等于预期值 对象:张三 Class->人 name->张三 age->18 检查张三的年龄是不是18 对象:结果输入框 属性->值 Class->Edit text->30 检查结果输入框的text属性值是不是30 (2)确定标准检查点的要素: a.确定要检查的控件对象 b.确定要检查的属性 c.确定预期值 d.确定检查点插入的位置 e.确定超时时间 (3)插入标准检查点的步骤: 方式一:录制时添加 a.录制时操作到需要添加检查点的步骤 b.点击Insert->Checkpoint->Standard Checkpoint选项 c.使用手型鼠标点击需要验证的对象 d.确认对象,选择要检查的属性,设置点的预期值,设置超时间: Properties:属性 Constant:预期值 Checkpoint timeout:超时时间 方式二:录制后通过Action Screen添加 a.定位脚本中一句代码,要求在Active Screen中显示待检查的对象 b.在Active Screen中右击待检查的对象,选择Insert Standard checkpoint(插入标准检查点) c.确定对象,选择属性,设置预期值,设置超时时间,设置插入位置 constant:预期值 checkpoint time:超时时间 insert statement:选择插入位置(Before current step插入在当前步骤之前、After current step插入在当前步骤之后) 当前步骤:光标定位的代码,显示截图的代码 (4)常用的属性 a、text(文本):记录控件中的文本 b、enabled(可用):记录控件对象是否处于可用状态,Ture代表可用,False代表不可用 c、checked(检查):记录复选框或者单选按钮是否处于被选中的状态,ON代表选中,OFF代表未选中 d、items count(选项总数):记录控件对象的选项个数 e、all items(所有选项):记录控件对象的选项内容 f、selection(选择上):记录正在被选择的选项 (5)总结检查点失败的可能原因: a.检查控件、属性、预期值错误 b.检查点插入的位置错误 c.超时时间 d.需求变更 e.被测系统的缺陷 一、补充知识点: 1、Object Spy(对象探测器) (1)作用:主要用于查看RO的当前属性值 (2)使用方法: a.打开Object Spy窗口 Tools->Object Spy 工具栏->博士帽人头 b.打开被测系统,把需要查看的RO准备好 c.再点击Object Spy窗口中的手型按钮 d.使用手型的鼠标点击需要查看的RO,如果RO遮挡,按住Ctrl键把RO操作显示出来,在释放Ctrl键点击RO 2、wait语句 (1)作用:等待固定的时间,单位:秒 当脚本执行到wait语句时,会等待固定的时间,再执行下一句代码 (2)语法: wait5:‘等待5s’ 二、检查点 1、位图检查点Bitmap Checkpoint 注意:位图检查点不是仅仅针对被测系统中的图片进行检查,它可以对任何区域进行检查,只需要把要检查的区域截成一张图片 (1)作用:主要用于UI检查,检查页面布局,比如:控件位置、大小、颜色、状态等 (2)确定位图检查点的要素: a.确定检查的控件对象 b.确定检查控件对象的区域(预期值,整个控件也可以作为预期值) c.确定插入位置 d.确定超时时间 (3)插入位图检查点步骤: 注意:位图检查点建议在录制时添加 a.录制时操作到需要添加检查点的步骤 b.点击Insert菜单栏选择 Ckeckpoint->Bitmap Checkpoint c.使用手型鼠标点击检查的控件对象 d.确定对象设置检查点属性: --check entire bitmap:检查整张图片 --check only selected area: 检查图片的一部分区域,需要使用十字光标画出区域 save only selected area:只保持选中的区域,节省磁盘空间 --Tolerance:容量差 RGB:颜色容差 PX:像素容差 --checkpoint timeout:超时 2、文本检查点text Checkpoint (1)作用:检查被测系统中的文本字符串内容是否等于预期值,比如提示信息 (2)确定文本检查点的要素: a.确定待检查的控件对象(文本) b.确定预期值 c.确定检查点插入的位置 d.确定超时时间 (3)文本检查点步骤 方式一:在录制时添加 a.录制时操作到需要添加到添加检查点的步骤 b.点击Insert选中->Checkpoint->Text Checkpoint c.使用手型鼠标点击待检查的文本 d.确定对象,设置检查点的属性 --Constant:预期值 --Match Case:匹配大小写 --Ignore Spaces:忽略空格 --Exact Match:精确匹配 --Text not dispalyed:不显示文本 --checkpoint timeout:超时时间 方式二:在录制后通过Active Screen添加 a.在代码中定位一句代码,要求显示出待检查的文本 b.在Active Screen中右击文本选择Insert Test Checkpoint c.设置文本检查点的属性(跟方式一一样) d.设置插入的位置,如果插入的位置不对,可以剪切代码到对的位置 3、文本区域检查点Text Area Checkpoint (1)作用:检查被测系统中指定区域内显示的文本字符串是否与预期一致 (2)确定区域检查点的要素: a.确定待检查的控件对象 b.确定检查的区域 c.确定预期值 d.确定插入位置 e.确定超时时间 (3)插入文本区域检查点的步骤: 注意:只能在录制时添加 a.录制时操作到需要添加检查点的步骤 b.点击Insert的Checkpoing->Text Area Checkpoint c.使用十字光标画一个矩形区域,区域内为待检查的文本字符串 d.确认对象,设置检查点属性 (4)文本检查点和文本区域检查点的区别 a.检查的控件对象不一样: 文本:文本对象本身 区域:存放文本的对象 b.支持的系统不一样 文本:支持C/S和B/S 区域:不支持B/S c.插入时间不一样 文本:录制时和录制后都可以插入 区域:只能录制时插入 三、Data Table参数化 1、应用场景:使用多组测试数据测试同一个业务流程 如:登录功能,为用户名、密码实现参数化 如:购票功能,为日期、城市、航班、席别等实现参数化 如:计算功能,为输入的数据实现参数化 2、实现方式: a.在Data Table表中准备多组测试数据(多行,一行数据为一条测试用例的数据) b.为脚本实现参数化后,QTP在运行代码时,运行一次会读取Data Table表中一行数据(执行完一条测试用例) 实现参数化:把脚本中的常量替换为参数(变量) c.QTP按照Data Table表中的数据去运行,有几行数据,脚本就运行几次 3、实现Data Table参数化的步骤: (1)确定需要实现参数化的数据 (2)录制要测试的业务流程 (3)准备测试数据 a.在Data Table指定的表单中(Global全局)准备多行多列测试数据 b.双击列名可以更改列名 c.黑线行为有效行(QTP会执行的行) d.多余的黑线行点击行号右击选择Edit(编辑)->Delete(删除) (4)关联数据(把脚本中的常量替换为参数) a.在Keyword View的Value列,点击常量后的“#”按钮 b.选择Parameter(参数),类型为DataTable,意思为从DataTable中读取数据 c.选择Name:读取哪列数据 d.选择Location:读取哪个表的数据 (5)设置运行行(一般用于调试) File(文件)->Settings(设置)->Run->DataTable Iterations数据表中数据反复 a.Run one lterstion only:只运行DataTable第一行数据 b.Run on all rows:运行所有行数据,默认设置 c.Run from row[] to row[]:运行指定行,用于调试 4.Data Table参数化的注意事项(非常重要) (1)受影响的数据也需要实现参数化 如:打开订单操作,为订单号实现了参数化,就必须为检查点中的订单号实现参数化 如:为Flight4a日期、城市实现了参数化,就必须为航班也实现参数化 (2)代码执行完最后一行,被测系统的状态允许代码第一行执行 如:Flight4a系统购票业务要实现参数化,最后一个步骤必须是清空被测系统 (3)在Data Table表中准备数据时注意: a.不能有多余的黑线行,删除黑线行,就点击行号右击选择Edit->Delete b.修改列名:双击列名进行修改,列名不能包含空格 c.字符串加密:选中需要加密的字符串右击选择Data(数据)->Encrypt(加密) d.如果输入的数据已0开头,输入的数字位数太多,需要在最前面加英文单引号 如:'001 '35416546546 一、输出值(Output Value) 1、应用场景 (1)关心被测系统执行时的数据(测试过程中) (2)前一个步骤生成的数据需要使用到后面某个步骤中时 2、输出值就是把被测系统实际运行过程中的数据输出的技术 3、输出值的类型 (1)标准输出值 (2)文本输出值 (3)文本区域输出值 4、标准输出值(Standand Output Value) (1)作用:输出RO的当前属性值 (2)确定输出值的要素: a、输出哪个控件对象的值 b、输出控件哪个属性的值 c、输出值的位置 (3)插入输出值的步骤: 方式一:录制时插入标准输出值 a.录制时操作到需要插入输出值的步骤 b.点击Insert菜单栏选择 Output value->Standard Output Calue c.确定对象后设置输出值的属性: -选择要输出的属性 -点击Modify按钮 -输出Name:列名 d.确定 方式二:录制后在Active Screen视图添加 a.在代码中定位一句代码,要求能够显示待输出的对象 b.在Active Screen右击对象,选择Insert output value,设置跟方式一一样 (4)数据表分类 a.设计时数据表:Design-time Data Table,在运行代码之前准备的数据,是静态的不会随着代码运行改变 b.运行时数据表:Run-time DataTable,结果报告中的表,记录运行时不断变化的数据 二、Action 1、什么是Action? Action是动作,是一系列步骤的集合,是一个逻辑单元(登录、购票、打开订单...) 2、Action的作用: (1)存放代码,实现代码分组,有利于维护代码 (2)可以实现局部代码反复 (3)实现代码的调用 (4)可以实现数据分组,把不同的数据放到不同的DataTable表单中 (5)实现TO分组 3、修改Action属性: (1)在Keyword View关键字视图中,在Action右击选择Action Properties(Action的属性) (2)修改Name:Action名称 (3)修改Description描述 (4)修改Reusable Action(是否可复用),勾选为可复用,其他脚本可以调用,反之不可以被调用 5、创建新Action (1)在工具栏点击紫色按钮(Insert->Call to new Action) (2)输入Action名称、描述、勾选是否可复用,选择位置(at the end of the test:在脚本之后,与默认Action1为兄弟关系,After the current step:在测试步骤之后,与默认Action1为父子关系) 6、分Action录制代码 方式一:先创建多个Action,再录制代码,录制时切换Action 方式二:边录制边创建 7、Action级别的DataTable参数化 (1)分Action录制代码,把需要反复执行多次的代码录制在一个Action中 (2)在Keyword view中找到需要参数化的数据,点击Value列"#",输入Name参数名称,选择Location数据存放的位置:Current Action Sheet(local)把数据放到当前Action自己的表单中 (3)在Action自己的表单中准备测试数据 (4)设置运行行(必须要做) a.在Keyword View中选Test Flow,展示出当前脚本所有的Action b.在需要反复执行的Action上右键选择Action Call Properties(Action调用属性) c.在Run 中选择Run on all rows(运行所有行) 1、Action的调用 a.在当前代码中可以调用其他的代码中的可复用的Action(勾选了Reusable Action选项的Action) b、如何查看Action是否为可复用Action:在Keyword View中右击Action,选择Action Properties查看,或看Action图标是否有两个蓝色箭头 (1)调用Action的步骤: a.在Keyword view中右击Action,选择Insert call Exising Action b.选择From Test:从哪个脚本调用 c.选择Action:调用哪个Action d.选择Location:插入的位置 At the end of the test:在Test末尾,与默认Action为兄弟关系 After current step:在当前步骤之后,与Action为嵌套关系 (2)说明: a、只要可复用Action能被调用 b、调用的Action为外部Action,不能修改,只能查看和运行 (3)注意: a、当调用了Action后,需要注意Action之间的衔接关系 b、如果调用来的Action为当前代码的第一个Action,需要注意启动被测系统的方式要与调用来的Action代码保持一致 2、复制Action(了解) (1)复制Action的步骤: a、在Keyword View中,右击Action选择Insert call to copy(复制)of Action b.选择From Test:从哪个脚本调用 c.选择Action:调用哪个Action d.选择Location:插入的位置 At the end of the test:在Test末尾,与默认Action为兄弟关系 After current step:在当前步骤之后,与Action为嵌套关系 e、如果要编辑当前复制的Action,可以勾选Edit new Action Properties(编辑新Action属性) (2)说明: a、可复用和不可复用的Action都可以被复制 b、复制来的Action生成一个新的Action,可以进行编辑 3、Action的分类 (1)可复用Action:Reusable Action,可以被其他的Test调用 (2)不可复用Action:Non-Reusable Action,不可用被其他Test调用 (3)外部Action:External Action,从其他Test调用来的Action 4、分割Action (1)作用:把一个Action的代码分割为多个Action 注意:QTP中不能把代码拷贝到不同的Action中,只能使用分割技术 Item列->对象库->对象属性/值->被测系统对比有没有一样的对象->按照 Operation列的操作操作对象 Action(登录+购票+退出) (2)分割Action的 步骤 a.在代码中把光标定位在分割后的第二个Action之前 b.点击工具栏第二个紫色按钮(Edit->Action->Split(分割)Action) c.选择分割后Action之间的关系: Independent of each other :兄弟关系 Nested:父子关系,嵌套 d.输入第一个Action名称和第二个Action名称,确定 (3)说明: a.不建议录制后分割,因为浪费磁盘空间 b.分割时一次只能分割为2个Action QTP初级:在Keyword view中一般使用鼠标操作就可以完成测试(有局限性) QTO高级:在Expert view使用代码来增强脚本实现测试 二、Expert View介绍 1、在Expert View中编写代码时一定要注意:所有的标点符号都必须是英文状态,如:单引号、双引号、括号 2、解读专家视图中的代码 (1)一句代码可以是一个操作步骤 (2)可以是一个VBS函数,如:wait (3)可以是一个VBS语句,如if、for、while等 (4)可以是一行注释 3、解读录制好的一个操作步骤的语法 格式: 测试用例: a.在Login对话框中的Agent Name输入框中输入:abcd Dialog("Login").WinEdit("Agent Name:").Set "abcd" (1)描述操作对象时,先描述父对象,如果有爷爷对象,也先描述爷爷对象,再父对象,再操作的对象。 操作对象都是从顶级对象按照父子层级开始描述 (2)操作对象和父对象使用点"."连接 (3)操作对象和操作方法使用"."连接 (4)操作方法和参数使用空格连接 (5)多个参数使用逗号","分割 (6)每个对象的描述格式:对象类型("对象名称") 4.解读案例 Dialog("Login").WinEdit("Agent Name:").Set "abcd" (1)操作对象的名称:Agent Name: (2)操作对象的类型:WinEdit (3)对对象执行的操作:Set (4)操作使用的参数:"abcd" (5)参数的个数:1个 (6)操作对象的父对象名称:Login (7)操作对象的父对象类型:Dialog 5、Windoes程序常见的控件对象和操作方法 对象类型--------操作方法 (1)Dialog(对话框)-- (2)WinEdit(输入框)--Set(设置)/SetSecure(密文设置)/SetSelection (3)WinButton(按钮)--Click(点击) (4)Window(窗口)--Close(关闭) (5)ActiveX--Type(输入) (6)WinComboBox(组合框/下拉框)--Select(选择) (7)WinList(列表框)--Select(选择) Select"选项内容" Select选项编号(编号从0开始) (8)WinRadioButton(单选框)--Set(设置)注意:set后面没有参数 (9)WinObject(无法识别的对象) (10)WinCheckBox(复选框)--Set(设置) Set"ON"勾选复选框 Set"OFF"不勾选复选框,去掉勾选 (11)Static(静态)--Click(点击) (12)WinMenu(菜单)--Select(选择) Select''一级菜单;二级菜单;三级菜单'' 一、Expert View专家视图介绍 1、常见的web控件类型及操作方法 (1)WebEdit(文本框)--Set(设置) Set"值" SetSecure"加密值" (2)WebButton(按钮)--Click(点击) (3)WebList(列表框)--Select(选择) Select"选项内容" Select 编号,编号从0开始 (4)Link(链接)--Click(点击) (5)WebCheckBox(复选框)--Set(设置) Set''ON''选中 Set"OFF"取消选中 (6)WebRadionGroup8(单选按钮组)--Select(选择) Select"选项内容" all items选项的值 Select"#选项编号" (7)Image(图片)--Click(点击) (8)WebElement(网页元素),纯文本和无法识别的控件都是WebElement (9)Browser(浏览器)--Close(关闭) (10)Page(页面)--Sync(同步),作用是等页面出来后再执行接下来的操作 (11)WebTable(表格)--GetCellData(获取指定单元格的文本数据) GetCellData(行号,列号),行号和列号都是从1开始 2、增强代码的语法格式 (1)检查点(Check) 语法:对象.Check Checkpoint(检查点对象名称) Image("printit").Check Checkpoint("prinit") (2)输出值(Output) 语法:对象.Output CheckPoint("输出对象名称") Image("printit").Output CheckPoint("Printit") (3)参数化(Data Table) a.Test级别参数化:把数据库存储在Global表单中 语法: 对象.方法DataTable("列名",dlLocalSheet) 二、VBS基础 1、VBS全称是VBScript,不需要编译就可以执行,属于解释性语言,是微软公司提供的脚本语言 2、VBS语法中不区分大小写,但是字符串数据内容需要严格区分大小写 如:"London"不能写成"LONDON" 如:Select就可以写成select 3、VBS的注释: (1)注释一行:在代码最前面使用英文状态的单引号进行注释(') (2)注释多行:选中多行,使用快捷键Ctrl+M (3)取消注释:选中行,使用快捷键Ctrl+Shift+M,注意关闭输入法,快捷键跟搜狗输入法有冲突 4、变量 (1)什么是变量? 存放数据的容器,如果想读取数据或使用数据,就操作容器 (2)定义变量 格式:Dim 变量名称:定义一个变量 Dim变量名称1,变量名称2,..定义多个变量 (3)变量命名规约: a.以字母开头 b.只能包含字母、数字、下划线 c.不能喝QTP内置关键字重名 d.不能喝VBS关键字重名 e.不能重复定义 '(4)给变量赋值: '格式:变量名称=值 username=1234 '数字 password="mercury" '字符串 city1=True '布尔 city2=3.14 '浮点数 'Dim fly="001" '不允许,变量定义和赋值不能在同一行 (5)使用变量:在代码中任何使用常量的位置都可以使用变量来代替 '"zhangsan"常量 msgbox "zhangsan" '直接使用常量 Dim uname uname="zhangsan" msgbox uname '使用变量 (6)VBS默认变量是可以不定义直接使用,但是建议使用时先定义,并且在代码的第一行写上Option Explicit Option Explicit:代码中变量必须先定义再使用,如果使用了未定义的变量,脚本会自动提示 (7)VBS中数据类型只有一个: Variant a.Variant有很多子类型: Integer整型 String字符串 Boolean布尔型,True真,False假 Double双精度浮点型 Long长整型 b.给变量赋值时,可以赋任意类型的值,如果需要特殊类型,可以使用强制转换 c.强制类型转换 Cstr:把数字转换为字符串 如Cstr(3)->"3" Cint:把数字字符串转换为整数 如:Cint("3")->3 总结: 1、QTP:QuickTest Professional,版本10.0,不支持Win7系统,不支持IE8以上的浏览器 2、插件:ActiveX录制Windows系统 Visual Bisic:录制VB程序 Web:录制Web程序 3、QTP测试时(录制、回放)启动被测系统的方式 (1)自动启动:为QTP指定被测系统的路径 (2)手动启动:录制时测试人员手动启动被测系统 4、....not found... 原因:在对象库中未找到对象 解决方法:把对象添加到对象库中 方式一:录制时添加 方式二:Ctrl+R打开对象库,在对象库中添加 方式三:在Action Screen截图视图中添加 5、...match... 原因:有可能被测系统未打开,或者打开了多个,有可能需求变更,有可能是缺陷 6、QTP的视图 Keyword View:表格 Expert View:代码 Active Screen:录制时截图 DataTable:测试数据 7、检查点 标准检查点Standard checkpoint,检查属性值 文本检查点Text checkpoint,检查文本字符串 文本区域检查点Text area checkpoint,检查指定区域内文本字符串 位图检查点Bitmap checkpoint,检查UI界面 8、输出值,标准输出值Standard output value,输入RO的属性值 9、DataTable参数化 Test级别,数据存放在Global表,在File中设置运行行 Action级别,数据存放在Action表,在Keyword View中设置运行行 10、Action 修改、创建、分Action录制代码、调用Action、复制Action、分割Action 11、Expert View专家视图代码讲解常用的Windows控件类型及操作 常用的web控件类型及操作 12、VBS基础 变量的定义、变量的规约、变量的使用 ----码字不易,给个关注呗。
。
0 评论