zoukankan      html  css  js  c++  java
  • 参数化测试--sheet表的应用

          自动化测试对录制和编辑好的测试步骤进行回放,这种是线性的自动化测试方式,其缺点是明显的,就是其测试覆盖面比较低。测试回放的只是录制时做出的界面操作,以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据。

         如何让测试脚本执行时,不仅仅局限于测试录制或者编辑时的测试数据呢?数据驱动的测试方式是解决这个问题的最佳方案。数据驱动测试把测试脚本中的测试数据提取出来,存储到外部文件或数据库中,在测试过程中,从文件动态读入测试数据。

          在QTP中,可以通过把测试脚本中固定的值替换成参数的方式来扩展测试脚本,这个过程也叫参数化测试。对于QTP可以使用多种方式来对测试脚本进行参数化,数据表参数化,环境变量参数化,随机数参数化等等。

    一.数据驱动测试的一般步骤

    1.参数化测试步骤的数据,绑定到数据表格中的某个字段;

    2.编辑数据表格,在表格中编辑多行测试数据(取决于测试用例以及测试覆盖率的需要);

    3.设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据;

    二.数据表参数化

    比如,我录制了一段打开QTP自带的“Flight”程序的脚本,包含登陆步骤和查询航班信息步骤:

    上面的脚本仅能检测特定的航班订票记录,现在我希望测试脚本对多个航班都进行查询,那么我们就需要进行参数化。

    下面以“Fly From”的测试步骤的参数化过程为例,介绍如何在关键字视图中对测试脚本进行参数化。

    (1)选择“Fly From:”所在的测试步骤行,单击“value”列所在的单元格,单击单元格旁边的“<#>”按钮,或者按快捷键“CTRL+F11”,则会出现下面的界面:

    (2)选择第二个选项“Parameter”,默认是“Data Table”,“name”中输入参数化数据所在列的名字,最好自己编辑,不要使用默认值,方便在多个数据参数化后辨认。

    在“Location in Data Table”中科院选择“Global sheet”,或者是“Current action sheet(local)”,区别仅仅是参数存储位置的不同。

    点击OK按钮之后,在关键字视图中可看到,“value”值已经被参数化,替换成了“Data Table("<fly_from>")”。同时在Data Table(选择菜单“View|Data Table”打开)中可以看到刚刚“fly from”的默认值被自动写入表格中,继续编辑输入其他数据,得到如下图所示的界面:

    (3)运行

    由于刚刚的例子中还包含了登陆的操作,如果就这样执行遍历data table中的数据,登陆操作也会被重复执行3次的。所以我们要先把登陆操作删除掉,再来运行需要遍历的操作。

    我尝试了点击查询操作,再选择“run from step”,但是这样就不能实现参数化的操作了,只能执行一遍。有没有其他不需要删除login操作的办法来实现参数化呢?请各位大神指教。

    删除login操作之后,我们来正式运行。这个运行之前需要先设置2个地方:

    1)点击菜单栏的“File”,再选择“settings....”,打开如下的界面,选择Run:

    可以看到Data Table iterations下有三个设置,可以选择“Run on all rows”(data table里的数据全部执行),或者是选择“Run from row x

     to row xx”(仅执行data table里的特定几行数据)。

    选择好之后,点击 apply,再点击OK

    2)选中action,点击右键,选择“Action Call Properties...”,打开设置界面,

      -----> 

    如右上图,需要设置的内容跟刚刚的第一个设置是一样的,需要注意的是这里的设置要跟第一个设置完全一样。

    最后,就可以执行运行操作遍历所有参数例子了。

    最后可以看看这个文章里关于Globle Sheet和Local Sheet的区别:http://www.cnblogs.com/bangbangjiang/p/3830136.html

  • 相关阅读:
    IIS运行asp程序出现The requested resource is in use 和 安装.net 2.0 后运行2.0程序出现 Failed to access IIS metabase 错误的解决
    动态sql语句基本语法
    屏蔽浏览器关闭按钮及ALT+F4 快捷键
    [转]如何进行.NET高效开发
    HttpRuntime.Cache 与HttpContext.Current.Cache的疑问
    我搜集的关于工作流方面的技术文章
    [转]输入框自动完成,模仿IE的,支持FireFox
    javascript 的面向对象特性参考
    定义局部变量时,字符串不能超过8000的方法
    世联地产软件工程师笔试试题
  • 原文地址:https://www.cnblogs.com/bangbangjiang/p/3547818.html
Copyright © 2011-2022 走看看