版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章内容8.1自动化测试概述8.2功能测试工具8.3性能测试工具8.4测试管理工具沈阳师范大学软件学院1本节内容8.1自动化测试概述8.1.1什么是自动化测试8.1.2自动化测试的过程8.1.3自动化测试优缺点8.1.4自动化测试与手工测试沈阳师范大学软件学院28.1.1什么是自动化测试8.1.1什么是自动化测试自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划自动执行测试,意在减轻手工测试的重复性劳动,从而达到提高软件质量的目的。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。自动化测试可以分为基于白盒/灰盒测试的自动化和基于黑盒测试的自动化。基于白盒/灰盒测试的自动化,主要是针对黑盒无法覆盖的软件功能部分,通过白盒的方式,利用编写的程序进行自动化测试。沈阳师范大学软件学院38.1.2自动化测试的过程8.1.2自动化测试的过程实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:软件需求变动不频繁项目周期足够长自动化测试脚本可重复使用沈阳师范大学软件学院48.1.2自动化测试的过程8.1.2自动化测试的过程沈阳师范大学软件学院5自动化测试需求分析自动化测试框架的搭建设计出自动化测试用例设计与编写自动化脚本验证测试脚本的正确性运行测试脚本8.1.3自动化测试优缺点8.1.3自动化测试优缺点大部分自动化功能测试工具,尤其是商业的测试工具,都是基于GUI对象识别技术来设计的,基于GUI层面的测试需要与各种界面元素打交道,而且不同的编程语言和开发工具开发的应用程序在界面的表现、事件的响应上都略有不同,因此,设计基于GUI层面的自动化功能测试工具会更为复杂些。沈阳师范大学软件学院68.1.3自动化测试优缺点自动化测试优点对程序的回归测试更方便,可以测试到每一个特征可以运行更多更繁琐的测试,替代沉闷、耗时、低效率的手工作业。可以执行一些手工测试困难或不可能进行的测试,比如压力测试、并发测试、大数据量测试、崩溃性测试。更好地利用资源。测试具有一致性和可重复性增加软件信任度沈阳师范大学软件学院78.1.3自动化测试优缺点自动化测试的缺点不能取代手工测试手工测试比自动测试发现的缺陷更多对测试质量的依赖性极大测试自动化不能提高有效性测试自动化可能会制约软件开发由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发工具本身并无想像力沈阳师范大学软件学院88.1.4自动化测试与手工测试8.1.4自动化测试与手工测试自动化测试最大的用处是保证测试的质量,而不是发现问题,而手工测试是发现问题。因为我们每次的回归测试,如果是手工测试的情况由于时间的关系并不能因为一个模块的bug,去测试其他的模块,而自动化测试工具的加入,可以保证所有模块的基本功能,每次回归用手工去发现验证问题,用自动化工具去保证整个软件的基本功能正常运行,自动化的推广是逐步的。沈阳师范大学软件学院98.1.4自动化测试与手工测试8.1.4自动化测试与手工测试测试工作无论是手工测试还是自动化测试都是软件质量保证的一个途径。两者有效的结合是测试质量保证的关键。沈阳师范大学软件学院108.1.4自动化测试与手工测试问题:何时运用手工测试又何时运用自动化测试?对于一些基本的、逻辑性不强的操作,可以运用自动化测试工具。应该说,现在在性能测试、压力测试等方面,自动化测试有其不可替代的优势。它可以用基本的脚本,实现大量的重复的操作。从而通过对测试结果的分析,得出结论,这样不仅节省了大量的人力和物力,而且使测试的结果更准确对于一些逻辑性很强的操作,如果自动化测试不是很健全的话,不建议运用。因为这须要比较复杂的脚本语言,不可防止的添加了由于测试脚本的缺陷所造成测试结果不正确的误差。这时就须要手动测试了。沈阳师范大学软件学院11本节内容8.2单元测试工具JUNIT8.2.1JUnit简介8.2.2JUnit核心类/接口8.2.3JUnit单元测试的步骤8.2.4JUnit在Eclipse下的使用8.2.5JUnit最佳实践沈阳师范大学软件学院128.2.1JUnit简介JUnit概述JUnit是Java社区中知名度最高的单元测试工具。由ErichGamma和KentBeck共同开发完成开源软件支持语言Smalltalk,Java,C++,Perl等等支持的IDEJBuilder,VisualAge,Eclipse等沈阳师范大学软件学院138.2.1JUnit简介JUnit功能可供选择的其他前端或者test-runner,用来显示你的测试结果用单独的classloader来运行每个单元测试,以避免副作用标准的资源初始化和回收方式(setUp和tearDown)各种不同的assert方法,让你检查测试结果的操作变得更容易同流行的工具,比如Ant,以及流行IDE比如Eclipse,JBuilder整合沈阳师范大学软件学院148.2.1JUnit简介JUnit的好处开源工具,可以免费使用,可以找到很多实际项目中的应用示例。由于源码开放,开发者还可以根据需要扩展JUnit功能可以将测试代码和产品代码分开测试代码编写容易,功能强大自动检验结果并且提供立即的反馈易于集成到开发的构建过程中,在软件的构建过程中完成对程序的单元测试测试包结构便于组织和集成运行,支持图形交互模式和文本交互模式沈阳师范大学软件学院158.2.1JUnit简介JUnit安装Java的JUnit可从网上免费下载将下载的junit.zip解压到你指定的目录设置环境变量Variable:CLASSPATHVariableValue:.;InstallPath/junit.jar测试运行(进入命令提示符安装目录下)javajunit.swingui(textui,awtui).TestRunnerjunit.samples.AllTests沈阳师范大学软件学院168.2.1JUnit简介JUnit框架沈阳师范大学软件学院178.2.2JUnit核心类及接口8.2.2JUnit核心类及接口沈阳师范大学软件学院188.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestRunner(测试运行器)没有TestRunner接口,只有一个所有TestRunner都继承的BaseTestRunner执行测试并提供相关的结果的统计信息包含三个TestRunner类一个用于文本控制台一个用于Swing还有一个AWT(遗产代码,很少有人用)沈阳师范大学软件学院198.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestRunner(测试运行器)实际运用中的SwingtestrunnerGreenbar通过测试Redbar测试失败沈阳师范大学软件学院208.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestCase(测试用例)把具有公共行为的测试归入一组扩展了JUnit的TestCase类的类。它以testXXX方法的形式包含一个或多个测试典型的TestCase包含两个主要部件fixture单元测试沈阳师范大学软件学院218.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestCase(测试用例)Fixture管理资源,复用配置代码运行一个或多个测试所需的公用资源或者数据集合TestCase通过setUp和tearDown方法来创建和销毁fixture典型应用数据库连接,生成输入文件沈阳师范大学软件学院228.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestCase(测试用例)创建单元测试方法继承自TestCase的一组assert方法封装了最常见的测试任务,这些assert方法可以极大地简化单元测试的编写沈阳师范大学软件学院238.2.2JUnit核心类及接口Assert超类所提供的8个核心方法沈阳师范大学软件学院248.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestCase(测试用例)创建单元测试方法除了Assert提供的方法之外,TestCase还实现了10个它自己的方法coutTestCases,CreateResult,getName,run,runBare,setName,setup,teardown,toString沈阳师范大学软件学院258.2.2JUnit核心类及接口TestCase的10个自己的方法沈阳师范大学软件学院268.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestCase(测试用例)这18个方法共同为你提供了使用JUnit编写测试的全部功能沈阳师范大学软件学院278.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestSuite(测试集合)testsuite是把多个相关测试归入一组便捷方式若你没有提供自己的TestSuite,testrunner会自动创建一个缺省的TestSuite不能满足时,可能会想组合多个suite,把它们作为主suite的一部分,这些suite来自几个不同的package沈阳师范大学软件学院288.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestSuite(测试集合)通常情况下TestAll类仅仅包括一个静态的suite方法,这个方法会注册应用程序需要定期执行的所有Test对象(包括TestCase对象和TestSuite对象),下面是一个典型的TestAll类沈阳师范大学软件学院298.2.2JUnit核心类及接口TestAll类importjunit.framework.Test;importjunit.framework.TestSuite;importjunitbook.sampling.TestDefaultController;publicclassTestAllextendTestCase{publicstaticTestsuite(){TestSuitesuite=newTestSuite("Alltestsfrompart1");suite.addTestSuite(TestCalculator3.class);suite.addTestSuite(TestDefaultController.class);returnsuite;}}沈阳师范大学软件学院308.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestResult所有的TestSuite都有一个对应的TestResult负责收集TestCase的执行结果。储存了所有测试的详细情况,是通过还是失败。失败则会创建一个TestFailure对象TestRunner使用TestResult来报告测试结果。没有TestFailure对象进度条就用绿色,否则进度条用红色并输出失败测试的数目沈阳师范大学软件学院318.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestResultJUnit区分失败和错误失败:是可以预期的,代码的改变不时会造成断言失败,你只要修正代码,断言就可以再次通过错误:比如常规程序抛出的异常,则是测试时不可预料的沈阳师范大学软件学院328.2.2JUnit核心类及接口8.2.2JUnit核心类及接口TestListener帮助对象访问TestResult并创建有用的报告。虽然Testlistener接口是JUnit框架的重要部分,但是你编写自己的测试时不必实现这个接口。只有需要扩展JUnit框架时才会需要实现这个接口沈阳师范大学软件学院338.2.3JUnit单元测试步骤8.2.3JUnit单元测试步骤JUnit成员三重唱,共同产生测试结果当你需要编写更多的TestCase的时候,你可以创建更多的TestCase对象。当你需要一次执行多个TestCase对象的时候,您可以创建一个TestSuite对象或使用缺省的TestSuite对象进行封装。为了执行TestSuite,需要使用TestRunner。通过TestRunner的执行生成TestResult对象沈阳师范大学软件学院348.2.3JUnit单元测试步骤8.2.3JUnit单元测试步骤重载setUp(),封装测试环境初始化及测试数据准备设计测试方法,以testXXX命名在测试方法中使用断言方法如assertEquals(),assertTrue()等设计测试套件,或使用缺省的测试套件,调用TestRunner执行测试脚本,生成测试结果重载tearDown()析构测试环境,执行收尾动作沈阳师范大学软件学院358.2.3JUnit单元测试步骤例子(待测类)publicclassCalculatorTestextendsTestCase{ privateCalculatorcal; publicvoidsetUp(){ cal=newCalculator(); } publicvoidtearDown(){
}沈阳师范大学软件学院36测试类必须以TestCase为父类
每个测试方法执行前都会调用该方法析构测试环境,执行收尾动作生成对象8.2.3JUnit单元测试步骤例子(待测类)publicclassCalculator{publicintadd(inta,intb){ returna+b;}publicintminus(inta,intb){ returna-b;}publicintmultiply(inta,intb){ returna*b;}publicintdivide(inta,intb)throwsException{if(0==b){ thrownewException("除数不能为零!");}returna/b;}}沈阳师范大学软件学院378.2.3JUnit单元测试步骤例子(待测类)publicvoidtestAdd(){ intresult=cal.add(1,2);
Assert.assertEquals(3,result); } publicvoidtestMinus(){ intresult=cal.minus(1,2);
Assert.assertEquals(-1,result); } publicvoidtestMultiply(){ intresult=cal.multiply(2,3);
Assert.assertEquals(6,result); }沈阳师范大学软件学院38Junit3.8测试方法需满足:1)Public的2)Void的3)无方法参数4)方法名称必须以test开头断言调用该方法8.2.3JUnit单元测试步骤例子(待测类)
publicvoidtestDivide(){ intresult=0; try{ result=cal.divide(6,4); } catch(Exceptione){ e.printStackTrace();
Assert.fail(); }
Assert.assertEquals(1,result); }沈阳师范大学软件学院39期望该行代码永远不会被执行,断言失败,停止执行立即失败8.2.3JUnit单元测试步骤例子(待测类)publicvoidtestDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail(); } catch(Exceptionex){ tx=ex; } Assert.assertNotNull(tx); Assert.assertEquals(Exception.class,tx.getClass()); Assert.assertEquals("除数不能为零!",tx.getMessage()); }}沈阳师范大学软件学院40一个方法可以有多个测试方法,输入的不同情况会有不同的testcase出现tx是Exception类型的一旦发生异常,则tx一定不为空期望该行代码永远不会被执行,断言失败,停止执行立即失败8.2.3JUnit单元测试步骤例子(待测类)publicvoidtestDivide2(){ Throwabletx=null; try{ cal.divide(4,0); Assert.fail(); } catch(Exceptionex){ tx=ex; } Assert.assertNotNull(tx); Assert.assertEquals(Exception.class,tx.getClass()); Assert.assertEquals("除数不能为零!",tx.getMessage()); }}沈阳师范大学软件学院41一个方法可以有多个测试方法,输入的不同情况会有不同的testcase出现tx是Exception类型的一旦发生异常,则tx一定不为空期望该行代码永远不会被执行,断言失败,停止执行立即失败8.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit首先新建一个项目单元测试代码把它和被测试代码混在一起,这显然会照成混乱建议您分别为单元测试代码与被测试代码创建单独的目录,并保证测试代码和被测试代码使用相同的包名。这样既保证了代码的分离,同时还保证了查找的方便遵照这条原则,我们在项目HelloJUnit根目录下添加一个新目录testsrc,并把它加入到项目源代码目录中沈阳师范大学软件学院428.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit给新建一个HelloJunit类添加一个abs()方法沈阳师范大学软件学院43packageexample;public
classHelloJunit{ public
static
intabs(intn){
returnn>=0?n:(-n);}8.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit在类上右击,选择“new”->“JUnitTestCase”新建一个HelloJUnitTest类,用来测试Hello类选择刚刚建立的文件夹“Hello/testscr”,选中setUp()和tearDown(),然后点击“Next”选择要测试的方法,我们选中abs(int)方法点击“finish”,跳出需要添加JUnit.jar包,点击“OK”沈阳师范大学软件学院448.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnitHelloJunitTest.java文件中输入代码沈阳师范大学软件学院458.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit在测试类上点击右键,在弹出菜单中选择“RunAs”->“JUnitTest”沈阳师范大学软件学院468.2.4在Eclipse下使用JUnit8.2.4在Eclipse下使用JUnit沈阳师范大学软件学院47表示测试通过表示测试失败JUnit视图工具栏移动到下一个故障点移动到上一个故障点仅显示故障和错误的测试方法锁定滚动重新运行上次测试重新运行上次测试——首先解决故障打开JUnit运行历史记录停止运行JUnit8.2.5JUnit最佳实践8.2.5JUnit最佳实践一次只测试一个对象单元测试独立地检查你创建的每个对象,这样就可以在第一时间把它们隔离起来。如果一次测试多于一个对象,那么你就无法预测当这些对象发生改变时它们会如何交互沈阳师范大学软件学院488.2.5JUnit最佳实践8.2.5JUnit最佳实践在assert调用中解释失败原因用到assert方法时,使用第一个参数是String类型的那个签名,这个参数让你可以提供一个有意义的文本描述,在断言失败时JUnittestrunner会显示这个描述沈阳师范大学软件学院498.2.5JUnit最佳实践8.2.5JUnit最佳实践选择有意义的测试方法名遵守testXxx的命名模式,其中Xxx是待测方法名。若你需要为同一个方法增加其他的测试,那么可以改用testXxxYyy的命名模式,其中Yyy描述了测试的不同之处沈阳师范大学软件学院508.2.5JUnit最佳实践8.2.5JUnit最佳实践一个单元测试等于一个测试方法不要试图把多个测试塞进一个方法,这样导致的结果就是测试方法变得更复杂,而且在测试方法中编写的逻辑越多,测试失败的可能性也就越大,需要调试的可能性也就越大沈阳师范大学软件学院518.2.5JUnit最佳实践8.2.5JUnit最佳实践同一个包,分离的目录把所有测试和待测类都放在同一个包中,但使用平行目录结构沈阳师范大学软件学院528.2.5JUnit最佳实践8.2.5JUnit最佳实践同一个包,分离的目录把所有测试和待测类都放在同一个包中,但使用平行目录结构沈阳师范大学软件学院53本节内容8.2性能测试QTP8.2.1QTP介绍8.2.2QTP工作流程8.2.3
QTP安装、配置8.2.4QTP基本使用方法8.2.5QTP关键字和数据驱动沈阳师范大学软件学院548.2.1QTP介绍8.2.1QTP介绍
QuickTestProfessional(QTP)是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。沈阳师范大学软件学院558.2.1QTP介绍8.2.1QTP介绍快捷:自动执行测试比手工执行测试速度快可靠:可以准确无误的执行既定的操作反复使用:可以按要求反复执行某个功能的测试操作可编程的:可以通过编程来测试一些页面上不可见的对象易理解的:以图表和代码两种形式呈现测试操作容易理解可重用的:可单独调用某项功能模块进行测试沈阳师范大学软件学院568.2.1QTP介绍QTP简介快捷:自动执行测试比手工执行测试速度快可靠:可以准确无误的执行既定的操作反复使用:可以按要求反复执行某个功能的测试操作可编程的:可以通过编程来测试一些页面上不可见的对象易理解的:以图表和代码两种形式呈现测试操作容易理解可重用的:可单独调用某项功能模块进行测试沈阳师范大学软件学院578.2.1QTP介绍QTP界面介绍TestPane包括KeywordView和ExpertView两个视图。图中显示的是关键词视图,录制生成的脚本可以在这里很直观的看到,可以在此视图完成参数化的工作。ExpertView可以在在此视图中直接修改生成的脚本,适合对VB脚本和QTP的函数比较熟悉的测试人员使用。DataTable,就是一个Excel,用于提供自动化测试脚本所需的输入数据或者校验数据。指向测试脚本文件目录下的Default.xls文件。可以直接在Excel中编辑数据。ActiveScreen,录制脚本时生成,记录下Web页面,可以在此完成大量的修改脚本工作,如添加检查点等。沈阳师范大学软件学院588.2.1QTP介绍QTP是如何工作的QTP易于操作,即使是初级的测试人员也能在短时间内对其驾轻就熟。您可以使用无需脚本的关键词视图来表现测试的每个步骤,仅由此就可创建一个测试。您还可以通过QTP所集成的录制能力来捕获测试步骤。该产品用简单的英语以文档形式记录每个步骤,并通过活动屏幕将文档与一个集成截屏相结合。传统的脚本记录工具所生产的脚本不易修改,与此不同的是,QTP的关键词驱动方式能让您便捷地插入、修改、数据驱动(data-drive)和移除测试步骤。QTP可以自动引入检查点来验证应用的属性和功能点,比如确认输出量或检查链接的有效性。在关键词视图的每一步骤中,活动屏幕可显示被测应用在该步骤中的确切状态。您还可以为任意对象加入几种检查点,仅仅在活动屏幕中点击该对象,就可以验证该组件行为是否达到了期望值。沈阳师范大学软件学院598.2.1QTP介绍QTP是如何工作的然后您可以将测试数据输入数据表(DataTable),它拥有和Excel同样完善的功能特性,是一个集成的电子数据表格。您可以使用数据集并创建多种重复测试,无需编程就可以扩展测试案例的覆盖面。数据可以通过键入的方式输入或从数据库、数据表格或文本文档中导出。高级测试人员可以在专家视图(ExpertView)中查看和修改他们的测试,在专家视图中显示了由QTP自动生成的基于行业标准的基本VBScript语言。在专家视图中所做的任何改动将自动与关键词视图同步。沈阳师范大学软件学院608.2.1QTP介绍QTP是如何工作的一旦测试人员运行了一个脚本,TestFusion报告将显示测试运行各方面的信息,包括:高水平的结果纵览;一个可扩展的测试脚本树状视图(TreeView),其明确指出了应用错误的发生位置;被使用的测试数据;每个步骤的应用截屏,其中并标明了所有的差异;以及通过或未通过每个检查点的详细解释。您可以将TestFusion报告和QTP结合,从而与整个QA和开发小组分享这些报告。沈阳师范大学软件学院618.2.1QTP介绍QTP是如何工作的QTP处理一些应用的新版本问题。当一个被测应用发生变化时,比如把一个”Login”按钮被改名为”Signin”,您可以在共享对象容器(SharedObjectRepository)中做一次更新,接着此次更新将扩展到所有涉及这个对象的脚本。您可以将测试脚本公布给QTP,使其它的QA小组成员也可以使用您的测试脚本,从而减少了重复工作。通过与BusinessProcessTesting的整合,在一个基于Web的系统中,QTP被用于实现自动化操作,使非技术型用户可以便捷地在一个完全的无脚本环境中也能够建立起测试。QTP支持多种企业环境的功能测试,包括Windows、Web、.NET、Java/J2EE、SAP、Siebel、Oracle、PeopleSoft、VisualBasic、ActiveX、Mainframeterminalemulators和Webservices。沈阳师范大学软件学院628.2.2QTP工作流程8.2.2QTP工作流程沈阳师范大学软件学院63提交缺陷录制测试脚本前的准备录制测试脚本加强测试脚本调试测试脚本执行测试脚本分析测试结果8.2.2QTP工作流程录制测试脚本前的准备在录制测试前,请确认应用程序和QuickTest已按测试要求设置。请确保应用程序显示要录制的元素,例如,工具栏或特殊窗口窗格;还要确保应用程序选项已按测试目标设置。为了确保QuickTest可以正确地录制和存储信息,您还应该查看“测试设置”对话框(“测试”>“设置”)和“选项”对话框(“工具”>“选项”)中的设置。例如,应该确认测试已设置为使用适当的对象库模式。沈阳师范大学软件学院648.2.2QTP工作流程录制测试脚本浏览应用程序或网站时,QuickTest会将您执行的每个步骤图形化显示为关键字视图中的一行。步骤是任何引起应用程序发生更改的用户操作,例如单击链接或图像,或者向表单输入数据。在录制准备工作做好后,进行实际脚本的录制,此时QTP完全按照测试人员的操作步骤进行系统录制。沈阳师范大学软件学院658.2.2QTP工作流程加强测试脚本通过在测试中插入检查点可以搜索页面、对象或文本字符串中的特定值,这有助于确定应用程序或网站是否正常运行。通过扩大测试范围(用参数替换固定值),可以检查应用程序如何使用多组数据来执行相同的操作。通过添加逻辑和条件语句或循环语句,可以向测试添加复杂的检查。沈阳师范大学软件学院668.2.2QTP工作流程调试测试脚本在优化脚本后,需进行多次的调试,确保经过优化的脚本能够正确运行,并能正确体现优化的目的。沈阳师范大学软件学院678.2.2QTP工作流程
执行测试脚本根据测试计划以及在开展自动化测试前所录制,调试通过的脚本,进行待测软件的自动化功能测试。运行测试,检查应用程序或网站的行为。在运行时,QuickTest将打开应用程序,或者连接到网站,并执行测试中的每个步骤。沈阳师范大学软件学院688.2.2QTP工作流程分析测试结果分析前面的自动化测试结果,检查测试结果以便确定应用程序中的缺陷。沈阳师范大学软件学院698.2.2QTP工作流程
提交缺陷如果已安装了QualityCenter,则可以将发现的缺陷报告给数据库。QualityCenter是MercuryInteractive的软件测试管理工具。或者直接在BUG管理工具中提交缺陷。沈阳师范大学软件学院708.2.2QTP工作流程
提交缺陷如果已安装了QualityCenter,则可以将发现的缺陷报告给数据库。QualityCenter是MercuryInteractive的软件测试管理工具。或者直接在BUG管理工具中提交缺陷。沈阳师范大学软件学院718.2.3QTP安装8.2.3QTP安装安装要求CPU推荐P4以上内存推荐1GB以上显卡推荐8MB以上支持环境Win2000xpServer2003vistaIE6.07.0FireFox1.52.0Netscape8.1.2加载插件JAVAOracle.NETWebServices沈阳师范大学软件学院728.2.3QTP安装8.2.3QTP安装沈阳师范大学软件学院738.2.3QTP安装8.2.3QTP安装沈阳师范大学软件学院748.2.3QTP安装8.2.3QTP安装沈阳师范大学软件学院758.2.4QTP基本使用方法
关键字视图编辑测试脚本沈阳师范大学软件学院768.2.4QTP基本使用方法关键字视图为测试步骤添加注释沈阳师范大学软件学院778.2.4QTP基本使用方法关键字视图添加测试信息输出InsertStep|Report输出测试信息到测试报告中沈阳师范大学软件学院788.2.4QTP基本使用方法插入检查点(Checkpoint)InsertStandardCheckpoint检查测试内容是否为所要的沈阳师范大学软件学院798.2.4QTP基本使用方法关键字视图中插入新的测试步骤InsertStep|StepGeneratorCategory(类型)TestObjects:测试对象,被测试应用程序界面上的控制元素UtilityObjects:工具对象,QTP内建的各种用于编写测试脚本、辅助建立测试逻辑的工具类对象Functions:各种函数,包括库函数、内建函数、本地脚本函数添加一个Help对象沈阳师范大学软件学院808.2.4QTP基本使用方法ObjectSpy的使用Tools|ObjectSpy观察测试对象属性,了解测试程序空间行为沈阳师范大学软件学院818.2.4QTP基本使用方法对象库管理Resources|ObjectRepository把测试对象添加到对象库中Objects|AddObjecttoLocal导出对象库文件File|ExportLocalObject在测试脚本中访问对象库的测试对象下拉列表中选择Objectfromrepository沈阳师范大学软件学院828.2.4QTP基本使用方法添加新的ActionInsert|CalltoNewAction沈阳师范大学软件学院838.2.4QTP基本使用方法关联Action的对象库解决新添加Action不能直接使用前一个Action问题Resources|AssociateRepositorieAction_help关联Action沈阳师范大学软件学院848.2.4QTP基本使用方法编辑新的ActionDialog("Login").WinButton("Help").Click'打开帮助界面Dialog("Login").Dialog("FlightReservations").ActivateDialog("Login").Dialog("FlightReservations").WinButton("确定").Click'单击确定按钮关闭帮助界面沈阳师范大学软件学院858.2.4QTP基本使用方法0运行和调试测试脚本语法检查Tools|CheckSyntaxView|Information中显示使用断点快捷键F9单步调试Debug|StepOver或者F10Debug|StepInto或者F11沈阳师范大学软件学院868.2.4QTP基本使用方法运行整个测试Tools|Options运行部分测试——两种方法选中需要运行的Action
Automation|RunCurrentAction鼠标右键RunFromStep或RuntoStep分析测试结果检查测试脚本是否正确完成测试沈阳师范大学软件学院878.2.4QTP基本使用方法运行整个测试Tools|Options运行部分测试——两种方法选中需要运行的Action
Automation|RunCurrentAction鼠标右键RunFromStep或RuntoStep沈阳师范大学软件学院888.2.4QTP基本使用方法查看概要测试运行结果测试脚本运行结束后,在result中查看运行结果查看检查点查看测试过程截屏沈阳师范大学软件学院898.2.5QTP关键字和数据驱动关键字驱动实现自动化测试阶段划分计划阶段分析应用程序,决定哪些对象和操作会被测试过程使用实现阶段创建对象库,对象库中每一个对象都能唯一对应被测试程序上界面对象沈阳师范大学软件学院908.2.5QTP关键字和数据驱动什么时候使用关键字驱动测试方法有利于测试的创建和维护保持结构清晰增强测试脚本可读性有利于没有编码基础的人员缺乏强大灵活的编码支持沈阳师范大学软件学院918.2.5QTP关键字和数据驱动可视化编辑测试步骤编辑对象库收集关于测试对象的信息,存储在对象库中选择测试对象选择下拉列表中的ObjectFromRepository选择测试对象相应操作对象库中选取对象后,Operation中选择相应操作设置测试逻辑InsertStep|LoopStatement|For…Next沈阳师范大学软件学院928.2.5QTP关键字和数据驱动检查点的使用标准检查点(StandardCheckpoint)图像检查点(ImageCheckpoint)位图检查点(BitmapCheckpoint)表格检查点(TableCheckpoint)文本检查点(TextCheckpoint)文本区域检查点(TextAreaCheckpoint)可访问性检查点(AccessibilityCheckpoint)页面检查点(PageCheckpoint)数据库检查点(DataBaseCheckpoint)XML检查点(XMLCheckpoint)沈阳师范大学软件学院938.2.5QTP关键字和数据驱动检查点的使用添加标准检查点检查测试对象属性InsertStandardCheckpoint添加图像检查点检查Web页面图像属性InsertStandardCheckpoint添加位图检查点将某个区域作为位图来检查Insert|Checkpoint|BitmapCheckpoint沈阳师范大学软件学院948.2.5QTP关键字和数据驱动检查点的使用添加表格检查点检查表格数据Insert|Checkpoint|StandardCheckpoint添加文本检查点检查特定文本是否在界面上显示Insert|Checkpoint|TextCheckpoint添加文本区域检查点仅支持标准Windows\VB\ActiveX及插件支持控件文本检查Insert|Checkpoint|TextAreaCheckpoint沈阳师范大学软件学院958.2.5QTP关键字和数据驱动检查点的使用添加可访问性检查点检查指定网页是否满足Section508标准所指定的可访问性标准Insert|Checkpoint|AccessibilityCheckpoint添加页面检查点检查页面某些统计信息Insert|Checkpoint|Standard
Checkpoint添加可访问性检查点检查指定网页是否满足Section508标准所指定的可访问性标准Insert|Checkpoint|AccessibilityCheckpoint沈阳师范大学软件学院968.2.5QTP关键字和数据驱动检查点的使用添加页面检查点检查页面某些统计信息Insert|Checkpoint|Standard
Checkpoint添加数据库检查点检查应用程序所连接数据库数据内容Insert|Checkpoint|Database
Checkpoint添加XML检查点检查XML数据文件或Web应用中XML文档Insert|Checkpoint|XML
Checkpoint沈阳师范大学软件学院978.2.5QTP关键字和数据驱动
数据驱动测试方法什么时候使用驱动测试方法提高测试脚本覆盖率增强测试脚本健壮性数据驱动测试的一般步骤参数化测试步骤数据编辑数据表格设置迭代次数沈阳师范大学软件学院988.2.5QTP关键字和数据驱动
参数化测试通过参数化测试来提高测试的灵活性数据表参数化环境变量参数化随机数参数化参数化测试步骤选中Value列单元格单击“<#>”按钮修改DataTable中参数沈阳师范大学软件学院998.2.5QTP关键字和数据驱动
参数化测试使用随机数来进行参数化对“选择航班”这个测试步骤参数化通过访问GetItemsCount属性,获取航班列表行数使用RandomNumber随机选取其中一项通过Select方法选择航班参数化检查点单击检查点所在测试步骤的value中的单元格在Configurevalue中选择“Parameter”沈阳师范大学软件学院1008.2.5QTP关键字和数据驱动Action测试输入的参数化1、编辑Action的属性保存Flight程序中的登录部分选中ActionActionProperties输入信息2、添加Action的输入参数参数化Flight程序中的登录部分ActionPropertiesParameters单击+按钮关键字视图,点value列的<#>Test/actionparameter沈阳师范大学软件学院1018.2.5QTP关键字和数据驱动Action测试输入的参数化3、调用Action调用Flight中的登录部分Insert|CalltoExistingAction插入ActionActionCallProperties点击Value列的<#>输入参数值沈阳师范大学软件学院1028.2.5QTP关键字和数据驱动使用环境变量的参数化定义和设置环境变量File|Settings选中Environment在Variabletype中选择User-defined单击旁边的+定义环境变量名和输入值在测试步骤中绑定环境变量值定义好环境变量后,定位到value中<#>Environment在Name中选中之前定义的环境变量导出环境变量到XML文件File|SettingsEnvironmentExport导入外部环境变量文件沈阳师范大学软件学院1038.2.6VBScript脚本VBScript数据类型沈阳师范大学软件学院104子类型描述Empty未初始化的Variant。对于数值变量,值为0;对于字符串变量,值为零长度字符串("")。Null不包含任何有效数据的Variant。Boolean包含True或False。Byte包含0到255之间的整数。Integer包含-32,768到32,767之间的整数。Currency货币:-922,337,203,685,477.5808到922,337,203,685,477.5807。Long包含-2,147,483,648到2,147,483,647之间的整数。Single包含单精度浮点数,负数范围从-3.402823E38到-1.401298E-45,正数范围从1.401298E-45到3.402823E38。Double包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308。Date(Time)包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。String包含变长字符串,最大长度可为20亿个字符。Object包含对象。Error包含错误号。8.2.6VBScript脚本VBScript变量声明变量声明变量的一种方式是使用Dim语句、Public语句和Private语句在脚本中显式声明变量。例如:Dima;另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量因此,最好使用OptionExplicit语句显式声明所有变量,并将其作为脚本的第一条语句。命名规则第一个字符必须是字母。不能包含嵌入的句点。长度不能超过255个字符。在被声明的作用域内必须唯一。给变量赋值创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如:B=200沈阳师范大学软件学院1058.2.6VBScript脚本VBScript运算符VBScript运算符,包括算术运算符、比较运算符、逻辑运算符算术运算符包括+,-,*,/等算术运算符比较运算符包括=,>,<,<>(不等于)等比较运算符逻辑运算符包括逻辑非Not逻辑与And逻辑或Or等逻辑运算符沈阳师范大学软件学院1068.2.6VBScript脚本VBScript控制语句If...Then...Else语句SelectCase语句Do...Loop:当(或直到)条件为True时循环。While...Wend:当条件为True时循环。For...Next:指定循环次数,使用计数器重复运行语句。ForEach...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。沈阳师范大学软件学院1078.2.6VBScript脚本VBScript过程VBScript中,过程被分为两类:Sub过程和Function过程。Sub过程:执行操作但不返回值Function过程:Function过程通过函数名返回一个值调用函数的规则:带有Call函数后面要加括号,不带Call函数后面不要加括号(这样调用函数是绝对没有错误的)在无参数Call可以没有括号,在无参数或者1个参数,不带Call函数后面可以加括号,可以不加括号。在包括2个参数或者2个以上,不带Call函数后面不能加括号如果把函数赋值给一个变量,一般函数要带着括号。FunctionfunTest2(arg1,arg2)funTest2="参数化2个"&arg1&"和"&arg2EndFunctionCallfunTest2(1,2)funTest21,2fun=funTest2(1,2)沈阳师范大学软件学院1088.2.6VBScript脚本VBScript过程VBScript中,过程被分为两类:Sub过程和Function过程。Sub过程:执行操作但不返回值Function过程:Function过程通过函数名返回一个值调用函数的规则:带有Call函数后面要加括号,不带Call函数后面不要加括号(这样调用函数是绝对没有错误的)在无参数Call可以没有括号,在无参数或者1个参数,不带Call函数后面可以加括号,可以不加括号。在包括2个参数或者2个以上,不带Call函数后面不能加括号如果把函数赋值给一个变量,一般函数要带着括号。FunctionfunTest2(arg1,arg2)funTest2="参数化2个"&arg1&"和"&arg2EndFunctionCallfunTest2(1,2)funTest21,2fun=funTest2(1,2)沈阳师范大学软件学院109任务1:任务1:在Mercury
Tours网站注册一个新用户,按照屏幕说明浏览网站并预订航班,最后注销登录,结束会话。沈阳师范大学软件学院110任务1:任务1:在Mercury
Tours网站注册一个新用户,按照屏幕说明浏览网站并预订航班,最后注销登录,结束会话。沈阳师范大学软件学院111本节内容8.3测试管理工具LoadRunner8.3.1性能测试相关术语8.3.2LoadRunner概述8.3.3
Vuser发生器8.3.4Controller控制器8.3.5Analysis分析器8.3.6脚本编写与结果分析沈阳师范大学软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业管理费用收支审核制度
- 小学二年级语文学习效果分析报告
- 国际经济与贸易外贸服务公司贸易实习生实习报告
- 电子信息工程通信解决方案公司解决方案实习生实习报告
- 产品设计产品产品助理实习生实习报告
- 人力资源管理人力资源咨询公司咨询助理实习报告
- 管理学XX企业管理培训实习生实习报告
- 机械设计制造及其自动化机械制造厂设备工程师实习报告
- 机械工程汽车研发公司研发工程师实习生实习报告
- 体检报告质量控制制度
- 2026江苏省数据集团数字科技有限公司招聘考试备考题库及答案解析
- 2026年集团企业全员春节节前安全教育专项培训课件
- 规范广告宣传误差真实性核查流程
- 油管焊接施工方案(3篇)
- 2025至2030电力固态变压器行业调研及市场前景预测评估报告
- 拆除房屋施工监测技术方案
- 拜师仪式流程及主持稿
- 【《某三层商场防的排烟系统设计》13000字(论文)】
- 建筑公司安全管理办法
- 村支部书记换届工作报告
- 高中数学北师大版讲义(必修二)第03讲1.3弧度制4种常见考法归类(学生版+解析)
评论
0/150
提交评论