QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等
1.1 测试目的
(1) 使学生能掌握网站功能测试的基本思路和方法,学会使用自动化测试工具QTP进行功能测试;
(2) 培养学生分析、解决问题的能力;
(3) 提高学生的创新思维能力与动手能力;
(4) 提高学生的科技论文写作能力。
1.2 测试内容
QTP进行功能测试的测试流程的五个步骤:
1.制定测试计划
自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导测试全工程。
2.创建测试脚本
当测试人员浏览站点或在应用程序上操作的时候,QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。
3.增强测试脚本的功能
录制脚本只是为了实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程。
4.运行测试
QTP从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。测试过程中测试人员还可以调试自己的脚本,直到脚本完全符合要求。
5.分析测试
运行结束后系统会自动生成一份详细完整的测试结果报告。
二、测试计划及测试需求
2.1 测试原理分析
QTP主要采用的是使用GUI模拟人的操作。它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。
例如,在“用户名输入框”中输入“a用户”,伪代码如下:
WebEdit(“用户名输入框”).Set “a用户”,下面分析这个测试原理。
首先,QTP会通过“用户名输入框”这个名字到对象库的对象名中查找;
然后通过找到的对象名,找到对象名映射的属性包;
接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那QTP就会认为此控件为要找的控件;
最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“a用户”赋予了控件。
至于其他控件的识别和操作,基本原理和上面一样。
2.2测试流程图
根据测试原理的分析以及QTP测试的基本步骤可以设计如图2-1的测试流程图。
图2-1 测试流程图
·2.3 测试计划设计
根据测试原理分析与测试思想设计,设计如图2-2所示的测试过程计划流程图。
图2-2 测试计划流程图
2.4 测试需求分析
对于一个网站系统,其链接的正确性和各个功能模块的功能实现的准确性是其测试的关键性环节。同时在最短的时间内开发出需求分析中的网站系统的软件产品,以最快的速度能先于其他竞争对手占领软件市场,从而获取最大的利益,所以测试速度也是至关重要的。
传统的软件测试是靠人进行手工测试,也就是现在各个公司的主流方法,我们称之为Manual test。测试部门每天都要计算在某个项目上Charge多少个人。这样的测试耗费时间、人力、物力以及成本。自动化测试的目的就是尽可能的减少在测试上的人力和财力的开销,以最便捷省时省事的方法完成同样的任务。
因此以QTP自动化测试工具对网站的链接正确性检查和各个功能模块的功能实现的准确性测试能够在满足测试需求的前提下加快测试进度。
2.5 测试环境搭建
操作系统:Windows 10
语言:中文
浏览器:Internet Explorer 11
网络:宽带连接
网站:http://localhost:8080/keyan/index.jsp
软件:QuickTest Professional
其他软件需求:Microsoft Visio2007和Microsoft Word2009
三、测试用例的设计
3.1 登录与退出测试用例
(1). 登录测试用例设计如表3-1所示:
表3-1 登陆测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
输入用户名: |
Admin |
登陆成功 |
登陆成功 |
输入密码: |
*** |
(2). 退出测试用例如表3-2所示:
表3-2 退出测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
已登录邮箱 |
点击退出链接 |
退出并进入登陆界面 |
退出并进入登陆界面 |
3.2 增加科研人员的测试用例
(1). 增加科研人员的测试用例如表3-3所示:
表3-3 增加科研人员的测试用例
前置条件 |
输入数据 |
预期结果 |
实际结果 |
增加账号 |
账号 |
输入框出现:用户名 |
输入框出现:用户名 |
输入密码 |
密码 |
输入框出现:星号 |
输入框出现:星号 |
输入姓名 |
马鑫 |
输入框出现:马鑫 |
输入框出现:马鑫 |
职称信息 |
输入框出现:教师 |
输入框出现:教师 |
输入框出现:教师 |
学历信息 |
输入框出现:研究生 |
输入框出现:研究生 |
输入框出现:研究生 |
联系电话 |
输入框出现:13653306345 |
输入框出现:13653306345 |
输入框出现:13653306345 |
单位信息 |
输入框出现:信息系 |
输入框出现:信息系 |
输入框出现:信息系 |
(2). 测试用例如表所示:
脚本如下:
Browser("Browser").Page("Page").WebEdit("username").Set "admin"
Browser("Browser").Page("Page").WebEdit("password").SetSecure "5d083729c6a4cea6e982f601"
Browser("Browser").Page("Page").WebRadioGroup("sf").Select "系统管理员"
Browser("Browser").Page("Page").WebButton("点击登录").Click
Dim a(5)
a(0) = "17"
a(1) = "18"
a(2) = "19"
For n = 1To 3 step 1
Browser("Browser").Page("Page_2").Frame("menu").Link("增加科研秘书").Click
Browser("Browser").Page("Page_2").Frame("menu").Link("增加科研秘书").Check CheckPoint("增加科研秘书")
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("username").Set a(n-1)
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("password").SetSecure a(n-1)
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("realname").Set a(n-1)
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("sex").Set a(n-1)
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("age").Set a(n-1)
Browser("Browser").Page("Page_2").Frame("MainFrame").WebEdit("tel").Set "13653306432"
Browser("Browser").Page("Page_2").Frame("MainFrame").WebButton("确定").Click
Browser("Browser").Page("Page_2").Sync
Window("Internet Explorer").Dialog("来自网页的消息").WinButton("确定").Click
Next
四、测试过程
4.1开始录制脚本:
点击打开QTP,创建一个Blank Test;
图4-1 创建空白测试
我们这个实验是用我们的高校科研项目来验证各种系统的功能,点击Record来录制一个脚本:
图4-2 开始录制脚本
点击“确定”后进入系统主页:
图4-3 进入主页
然后进入系统登陆页面,如下图所示:
图4-4 进入系统主页面
输入用户名和密码后,进入系统的主界面功能:
图4-5 进入系统界面进行单位信息管理
点击修改后,进入QTP的Keyword View(Keyword模式提供一个 描述近似于原始测试用例的、跟代码无关的视图):
图4-6 进入QTP的Keyword视图
而下图是其Expert View(Expert就是代码视图,一般编写脚本都在这个区域):
图4-7 进入QTP的Expert视图
4.2 回放录制脚本:
录制完成后,点击按钮,由于没有加入检查点,故而结果都是Done,出现如下图:
图4-8 脚本回放完成界面
4.3 加入检查点
下面加入检查点,可以在邮箱登陆页面的输入用户名出加入一个检查点,以检查输入的用户名是否正确:,
图4-9 在用户名出加入检查点
然后设置检查点属性:
图4-10 设置检查点属性
图4-12 插入检查点后的Keyword视图
而下面的则是Expert View:
图4-13 插入检查点后的Expert视图
4.4 重新运行脚本
再次点击按钮,得到结果如下:
图4-14 脚本回放完成界面
两个结果都是Passed,表示都通过了,功能验证测试完成。