QTP——功能测试

一、前言(课设目的及内容)

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

语言:中文

浏览器:IE浏览器

网络:宽带连接

网站:http://127.0.0.1:5000/newstype

软件:QuickTest Professional

其他软件需求:Microsoft Visio2007和Microsoft Word2016

三、测试用例的设计

3.1 登录与注册测试用例

(1).注册测试用例设计如表3-1所示:

表3-1注册测试用例

前置条件输入数据预期结果实际结果
输入姓名:章英杰注册成功注册成功
输入电话:15297323390
输入密码:******

(2). 登录测试用例如表3-2所示:

表3-2 登录测试用例

前置条件输入数据预期结果实际结果
已注册用户登录成功登录成功
输入电话:15297323390
输入密码:******

3.2 查看新闻的测试用例

(1). 查看新闻的测试用例如表3-3所示:

表3-3 查看新闻的测试用例

前置条件输入数据预期结果实际结果
点击想要查看的新闻类别点击对应新闻类别链接进入对应类别的新闻列表页面进入对应类别的新闻列表页面
点击想要查看的新闻点击对应新闻链接进入对应新闻详情页面进入对应新闻详情页面

3.3 关闭新闻返回新闻咨询页面的测试用例

(1). 关闭新闻返回新闻咨询页面的测试用例如表3-4所示:

表3-4 关闭新闻返回新闻咨询页面的测试用例

前置条件输入数据预期结果实际结果
关闭新闻详情页面点击关闭页面按钮新闻详情页面关闭进入新闻列表页面新闻详情页面关闭进入新闻列表页面
点击导航栏中的“新闻首页”点击导航栏中“新闻首页”链接进入新闻咨询页面进入新闻咨询页面

3.4 脚本

SBrowser("Accordion Slider").Page("Accordion Slider").Link("登录|注册").Click

Browser("Accordion Slider").Page("注册或登录").WebEdit("WebEdit").Set "15297323390"

Browser("Accordion Slider").Page("注册或登录").WebEdit("WebEdit_2").SetSecure "627c7a0e614001379ef301f87ebc5b3ea454"

Browser("Accordion Slider").Page("注册或登录").WebButton("登录").Drag 137,142

Browser("Accordion Slider").Page("注册或登录").WebButton("登录").Drop 137,142

Browser("Accordion Slider").Page("Accordion Slider_2").Link("新闻资讯").Click

Browser("Accordion Slider").Page("新闻资讯").Link("旅游").Click

Browser("Accordion Slider").Page("旅游").Link("最火五一小长假将来临!这三座热门城市就别去了,火车票已秒光").Click

Browser("Accordion Slider").Page("旅游_2").Link("新闻首页").Click

Browser("Accordion Slider").Page("新闻资讯").Link("返回首页").Click

四、测试过程

4.1开始录制脚本:

点击打开QTP,创建一个Blank Test;

在这里插入图片描述

点击Record来录制一个脚本:

在这里插入图片描述

点击“确定”后进入新闻网站主页:

在这里插入图片描述

然后进入用户登录页面,如下图所示:

在这里插入图片描述

输入用户名和密码后,进入网站首页:

在这里插入图片描述

图4-5 进入邮箱的写信界面

点击新闻资讯,进入新闻类别页面:

在这里插入图片描述

点击想要查看的新闻类别进入新闻列表页面:

在这里插入图片描述

点击新闻链接进入新闻详情界面:

在这里插入图片描述

返回新闻首页:

在这里插入图片描述

进入QTP的Keyword视图:

在这里插入图片描述

而下图是其Expert View(Expert就是代码视图,一般编写脚本都在这个区域):

在这里插入图片描述

4.2 回放录制脚本:

录制完成后,点击按钮,由于没有加入检查点,故而结果都是Done,出现如下图:

在这里插入图片描述

4.3 加入检查点

下面加入检查点,在用户页面的输入用户名时加入一个检查点,以检查输入的用户名是否正确:,

在这里插入图片描述

然后设置检查点属性,检查点插入位置设为后,检查点超时设为2)):

在这里插入图片描述

插入检查点后效果:

在这里插入图片描述

Expert View:

在这里插入图片描述

4.4 重新运行脚本

再次点击按钮,得到结果如下:

在这里插入图片描述

图4-17 脚本回放完成界面

两个结果都是Passed,表示都通过了,功能验证测试完成。

五、测试结果分析

本次实验主要利用QTP的检查点功能来测试登录时输入用户名功能。在开始设置检查点的时候,我开始将检查点放在了输入用户名之前,导致用户名还没有输入就进行检查,所以一直失败,后来发现检查点位置放错了,应该放在输入用户名之后,修改之后测试通过。

在这里插入图片描述

六、课设小结及心得体会

QTP是一款非常强大自动化测试工具,它的用途非常广泛,各项功能如对象库,同步点,检查点等也非常好用。通过本次的课程设计,使我对软件测试这门课程有了一个更加深入的了解,尤其是相对于小学期之前来说,使用QTP进行功能测试熟练了很多,尤其是插入检查点这一环节,之前做实验时对这一环节并没有完全理解,所以在这次测试过程中卡在了插入检查点这一环节,测试一直不通过,后来通过网上查找资料以及查看学习通的视频才对这一环节完全理解,测试过程中除了插入检查点之外,基本没有出现其他问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/673956.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

46、Flink 的 异步 I/O 算子详解

异步 I/O 1.需求 在与外部系统交互(用数据库中的数据扩充流数据)时,需要考虑与外部系统的通信延迟对整个流处理应用的影响。 同步交互:使用 MapFunction访问外部数据库的数据, MapFunction 向数据库发送一个请求然后…

企业软件产品和服务 之 设计保证安全 七项承诺

1. 引言 公司如何保护自己免受数据泄露的影响?标准答案就是: “启用多因素身份验证”——MTA(Enable multifactor authentication)。 但是,目前很多公司仍然盲目地只使用密码作为唯一的身份来源。 网络安全的核心是…

IPD推行成功的核心要素(九)需求管理助力产品从一次成功走向一直成功

在当今竞争激烈的商业环境中,项目的成功与否往往取决于其能否满足用户和利益相关者的需求。然而,理解、捕捉和有效管理这些需求并非易事。因此,需求管理在项目管理中扮演着至关重要的角色。需求管理是一个系统性的过程,旨在确保项…

直播分享|深入解析ts-morph:通过注释生成类型文档

♪ ♫ 你看小狗在叫 树叶会笑 风声在呢喃♫ ♪ 乘风追梦,童心未泯 OpenTiny 预祝所有大朋友、小朋友儿童节快乐~ 与此同时,OpenTiny 贡献者直播也即将开启啦~ 直播主题:【深入解析ts-morph:通过注释生成类型文档】 6月1日&am…

前驱图,程序执行和进程状态

目录 前驱图 程序的执行 顺序执行 并发执行 进程的定义 进程的状态 总结 前驱图 现在有两个任务分别为p1,p2; 只有执行了p1,才可以执行p2,此时可以称p1为p2的前驱。通过符号语言表示如下: p1->p2 程序的执行 下面引进一段代码来理解进程的概念…

IDEA 学习之 疑难杂症系列

IDEA 学习之 疑难杂症系列 1. Mapstruct 编译空指针问题 1.1. 现象 NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifest1.2. 原因 MapStruct 在 IDEA 2020.3 版本编译 NPE 问题 1.3. 解决办法 2. IDEA 学习之 编译内…

什么牌子的开放式耳机质量好?2024超强实力派品牌推荐!

耳机对于一个音乐人有重要这个不必多说,我朋友是个音乐编辑,他经常需要长时间佩戴耳机进行音频编辑和混音工作。在尝试过多款开放式耳机后,都没找到合适的。今天,我将从专业角度为大家带来几款热门开放式耳机的测评报告&#xff0…

Python 高级数据类型

列表List 定义列表 可以将不同的基本数据类型或者列表装到一个列表里 my_list [1,2,3,4,5] print(my_list) # [1, 2, 3, 4, 5] 直接打印出列表的内容 print(type(my_list)) # <class list>my_list ["1","2","3","4","…

MYSQL之安装

一&#xff0c;下载仓库包 wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm二&#xff0c;安装仓库 yum -y install mysql80-community-release-el7-3.noarch.rpmsed -i s/gpgcheck1/gpgcheck0/g mysql-community.repo三&#xff0c;安装MY…

免费SSL证书的安全性与获取指南

SSL证书是一种数字凭证&#xff0c;用于加密用户与网站之间的信息交换&#xff0c;以确保传输的数据不被第三方窃取。它像是一个数字版的密封印章&#xff0c;为数据的传输过程提供了一层保护膜。 免费的SSL证书通常由CA机构提供&#xff0c;它们同样可以提供基础数据的加密服…

瑞吉外卖项目整体介绍

黑马程序员瑞吉外卖 文章目录 一、项目介绍二、产品原型展示三、技术选型四、功能架构五、角色 一、项目介绍 二、产品原型展示 产品原型&#xff0c;就是一款韩品成型之前的一个简单的框架&#xff0c;就是将页面的排版布局展现出来&#xff0c;使产品的初步构思有一个可视化…

跟着大佬学RE(一)

学了一个 map&#xff08;&#xff09;函数的使用 import base64rawData "e3nifIH9b_CndH" target list(map(ord, rawData)) # map 函数将 rawData 中的每个字符传递给 ord 函数。ord 函数返回给定字符的 Unicode 码点 print(target) # 打印 map 对象的内存地址&…

Prism 入门02,区域介绍

一.区域概念和使用方式 什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心功能之一,其主要作用是降低应用程序和模块之间的耦合度 。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以…

Android Display Graphics #1 整体框架介绍一

软件基础 Android的framework层提供了一系列的图像渲染API&#xff0c;可绘制2D和3D。简单理解就是上层开发APP的小伙伴提供了接口&#xff0c;开发者可以直接显示对应的自己内容。但如果掌握了Display底层逻辑再写上层app&#xff0c;会有掌控力&#xff0c;出问题可以根据lo…

【Mybatis】源码分析-自定义框架

1、自定义持久层框架 1.1、分析JDBC操作问题 package blnp.net.cn.jvm.demos;import java.sql.*;/*** <p></p>** author lyb 2045165565qq.com* createDate 2024/5/24 14:24*/ public class JdbcTest {public static void main(String[] args) {Connection conne…

大模型+RAG,全面介绍!

1 介绍 大型语言模型&#xff08;LLMs&#xff09;在处理特定领域或高度专业化的查询时存在局限性**&#xff0c;如生成不正确信息或“幻觉”。**缓解这些限制的一种有前途的方法是检索增强生成&#xff08;RAG&#xff09;&#xff0c;RAG就像是一个外挂&#xff0c;将外部数…

环路检测00

题目链接 环路检测 题目描述 注意点 返回环路的开头节点 解答思路 快慢指针确认链表中是否有环&#xff0c;如果无环则快指针最终会到达链表尾部&#xff0c;如果有环则快慢指针会相遇&#xff0c;当快慢指针相遇&#xff0c;此时新的节点node从head开始出发&#xff0c;与…

探索数据结构:便捷的双向链表

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;渐入佳境之数据结构与算法 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ​​ 前言 前面我们学习了单链表&#xff0c;它解…

微服务中feign远程调用相关的各种超时问题

1. 引言 在spring cloud微服中&#xff0c;feign远程调用可能是大家每天都接触到东西&#xff0c;但很多同学却没咋搞清楚这里边的各种超时问题&#xff0c;生产环境可能会蹦出各种奇怪的问题。 首先说下结论&#xff1a; 1)只使用feign组件&#xff0c;不使用ribbion组件&…

FuTalk设计周刊-Vol.045

#AI漫谈 热点捕手 1、新模型 Stable Diffusion 3 与 Stable Cascade 全面解析 最近 Stability AI 又接连推出了 2 个新的模型&#xff1a;Stable Diffusion 3 和 Stable Cascade&#xff0c;在图像生成效率和质量上比半年前推出的 SDXL 1.0 有了明显提升&#xff0c;今天就为…