QTP(1)

Wesley13
• 阅读 877

一、概念
  1、什么是软件测试?
    使用人工或者自动手段来运行或者测试某个软件的过程,其目的在于检验程序是否满足需求规格说明书或者弄清实际结果与预期结果之间的差异。

    (1)软件(程序+文档+数据)测试
    (2)软件测试工程师
      1)需求分析-->测试计划->测试方案-->测试用例(脚本)-->环境搭建-->执行测试-->跟踪缺陷-->自动化测试-->性能测试-->安全测试-->渗透测试
      2)做手工测试如何提高薪资,需要做到如何预防
        a.需求管理 质量管理(流程、技术、组织) 缺陷管理
      3) 做自动化测试提高薪资

    (3)软件测试的目的:
      1) 证明(表明软件能够工作)
      2) 检测(发现错误)
      3) 预防(管理质量)
    (4)软件由来
      需求分析-->概要设计-->详细设计-->编码-->测试-->运维

  2、什么是功能测试?
    根据测试用例逐一对现有的软件功能进行验证的过程,验证软件的各项功能是否满足用户需求。
    12306(购票:注册、登录、选择城市、选择日期、选择列车号、提交订单、填写信息、付款、查看订单......)
    QQ(社交:注册、登录、发送信息功能、空间、上传照片......)

  3、什么是自动化测试?
    指利用工具(QTP、Selenium)在没有人或者较少人参与的情况下,根据人的要求(测试用例)来完成测试的过程。
    没有人:代码已经写好了,QTP工具去执行测试
    较少人参与:代码执行的过程中需要执行其他操作
    登录
      1、输入用户名(工具输入)
      2、输入密码(工具输入)
      3、输入验证码(手动输入)
      4、点击登录(工具点击)

  4、什么是功能自动化测试(第3阶段的内容)?
    利用工具来测试系统功能的过程。

  5、为什么要实现功能自动化测试?
    功能测试过程中存在大量的回归测试、大数据量测试
    自动化测试可以提高测试效率、测试准确性,可以进行更严格的测试,并且可以做到无人值守
    QQ:V1.0 V1.1 V2.0 .......

    登录
      name={正确的、错误的、不输入}
      passwd={正确的、错误的、不输入}
        1、输入用户名:name
        2、输入密码:passwd
        3、点击登录按钮

  6、什么时候需要执行自动化测试?
    a.需求稳定
    b.通过冒烟测试
    c.测试周期长

  7、如何执行功能自动化测试?(流程)
    使用测试工具QTP
      a.熟悉被测系统
      b.分析需求
      c.设计测试方案
      d.设计测试计划
      e.设计测试用例(脚本)
        --录制脚本(编写脚本、设计脚本)
        --增强脚本(控制流程语句、参数化、检查点、封装方法.....)
        --调试脚本
        --执行脚本
        --分析测试结果
        --编写测试结果报告

  8、自动化测试对测试工程师的影响
    a.薪资待遇更高
    b.提升竞争力
    c.自动化测试是一个重要的发展方向(功能自动化、性能测试、管理、QA、PM)

二、QTP介绍
  1、QTP是什么?
    a.QTP是功能自动化测试工具
    b.QTP使用的语言:VBS脚本语言
    c.QTP当前环境:10.0
      升级版本UFT14.01
      建议使用UFT12(支持手机测试)
    d.功能测试工具
      QTP(Quick Test Professional)
      Selenium(测试web系统的工具)
      QARun
      Robt
      TestWriter

  2、QTP插件管理
    1) 插件管理界面(Add-in Manager),默认安装QTP有三个插件:
      a.ActiveX:录制windows程序(如:计算器、记事本、画图),默认QTP是支持windows程序的
      b.Visual Basic:录制VB程序(如:两位数加法器)
      c.web:录制web程序(Mtours、Ecshop)
    2) 作用:QTP为了识别被测系统控件的一种技术
      常用的控件:
        a.输入框(Edit)--输入(Type、Set)
          WinEdit
          VBEdit
          WebEdit
        b.按钮(Button)--点击(Click)、回车(Enter)
        c.链接(Link)--点击(Click)
        d.复选框(CheckBox)--设置(Set)
        e.单选按钮(RadioButton)--设置(Set)
        f.下拉框(WinComboBox)--选择(Select)
        g.列表(List)--选择(Select)
        h.图片(Image)--点击(Click)
        i.窗口(Window)--最小化、最大化、关闭(Close)
        j.浏览器(Browser)--最小化、最大化、关闭(Close)
    3) 在测试过程中如何选择插件?
      a.由被测系统控件的实现技术来决定选择加载什么插件
      注意:
        a.如果使用QTP时选择了不必要的插件,QTP运行效率较低
        b.如果使用QTP时未选择必要的插件,QTP将无法识别被测系统的对象并对其进行操作(无法进行测试)
    4) 如果打开QTP时没有显示Add-in Manager对话框,可以进入QTP界面进行设置
      菜单栏Tools(工具)-->Options(选项)-->General(常规)-->Display Add-in Manager on startup(启动QTP时显示插件管理对话框),勾选为显示,反之不显示

      练习1:两位数加法器
        (1)录制两位数加法器的加法业务流程
          测试用例:
            1) 打开两位数加法器
            2) 在"第一个数"输入框(Edit)中输入:39 100 -99
            3) 在"第二个数"输入框(Edit)中输入:12 99 0
            4) 点击"计算(J)"按钮
            5) 关闭两位数加法器

            Ctrl+S:保存脚本
            Test1001_两位数加法器_录制回放(自动录制)

            QTP(1)

(VBS脚本)
VbWindow("Form1").VbEdit("Text1").Set "39"
VbWindow("Form1").VbEdit("Text2").Set "12"
VbWindow("Form1").VbButton("计算(J)").Click
VbWindow("Form1").Close

  3、QTP中的视图
    (1)Expert View(专家视图):以代码的形式记录测试人员在录制时对被测系统执行的操作步骤
    (2)Keyword View(关键字视图):以表格的形式记录测试人员在录制时对被测系统执行的操作步骤
      1) Item(项目):记录测试人员在录制时对被测系统操作的控件(对象)
      2) Operation(操作):对控件执行的操作,是点击操作,还是输入操作,还是关闭操作......
      3) Value(值):对可输入的控件输入的值,会有值的控件有输入框、下拉框、列表框、复选框
      4) Documentation(文档):描述测试步骤,可以导出保存为文档,跟测试用例的步骤一样
        注意:keyword View和Expert View中的操作是一一对应的,只是表现形式不一样
    (3)Active Screen(截图视图):保存测试人员在录制时对被测系统执行的操作步骤的截图,只保存录制时的截图
      a.如果视图不显示,可以进行设置
        Tools(工具)-->Options(选项)-->Restore Layout(重置视图)

      b.如果代码运行速度太快怎么办?
        Tools(工具)-->Options(选项)-->Run-->Run mode(运行模式)-->Delay each step execution by [] millisecondes(设置每句代码之间的间隔时间,单位:毫秒)
      c.如果想让结果报告中总是显示步骤截图怎么办?
        Tools(工具)-->Options(选项)-->Run-->
        Screen Capture(屏幕截图)--> Save still image capture to results(保存截图在结果中)-->选择Always,总是保存

        Agent Name:用户名 4-10为字符
        Password:密码 mercury

        手工测试(计算器):
          测试用例01:
            1、打开被测系统
            2、输入48
            3、点击"+"按钮
            4、输入23
            5、点击"="按钮
              预期结果:71

(VBS脚本)
VbWindow("Form1").VbEdit("Text1").Set "48"
VbWindow("Form1").VbEdit("Text2").Set "23"
VbWindow("Form1").VbButton("计算(J)").Click
VbWindow("Form1").Close

          测试用例02:
            1、打开被测系统
            2、输入4
            3、点击"*"按钮
            4、输入2
            5、点击"="按钮
              预期结果:8

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
3年前
Java将List中的实体按照某个字段进行分组的算法
publicvoidtest(){List<UserlistnewArrayList<();//User实体测试用Stringid,name;//当前测试以id来分组,具体请按开发场景修改list.add(newUse
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这