精华内容
下载资源
问答
  • 概念我们把上面的这种设计方法叫做关键字驱动,总结以下两点。1.关键字驱动框架是一种功能自动化测试框架被称为表格驱动测试被称为基于动作字的测试。2.关键字驱动的框架的重要组成部分测试步骤(Test Step),...

    操作浏览器的方法都固定下来,不能变。

    操作方法需要的字段(定位方法,定位表达式,操作的值)用单独的列表示。

    程序运行异常后需要有错误信息和错误截图

    2.3.概念

    我们把上面的这种设计方法叫做关键字驱动,总结以下两点。

    1.关键字驱动框架是一种功能自动化测试框架

    被称为表格驱动测试

    被称为基于动作字的测试。

    2.关键字驱动的框架的重要组成部分

    测试步骤(Test Step),

    测试步骤中的对象(Test Object) --鼠标、键盘、浏览器等对象

    测试对象执行的动作(Action)

    测试对象需要的数据(Test Data)

    3.​如何设计关键字驱动

    3.1.如何设计程序?

    从上面设计的用例出发,我们依次来分析需要实现的功能。

    我们希望的是自动化框架脚本能读取每一行用例,然后在执行后把测试结果也填好,如果执行出错要有错误信息、错误截图。那我们需要完成以下代码的编写。

    (1)Excel操作(读、写)

    读取关键字名称、操作元素定位方式、操作元素定位表达式、操作值

    执行完成后写入执行时间、测试结果、错误信息、截图文件位置

    (2)根据关键字名称、操作元素定位方式、操作元素定位表达式、操作值开发web操作脚本

    (3)执行用例的方法脚本

    (4)错误信息记录方法脚本

    (5)错误截图方法脚本

    3.2.Excel的操作

    主要实现excel表格的读取与写入

    class OperateExcel(builtins.object)

    Methods defined here:

    init

    (self, excelfile)

    :param excelfile: excle文件路径和名字

    get_cell_of_object(self, sheet, coordinate=None, row_no=None, cols_no=None)

    :param sheet: sheet对象

    :param coordinate: 坐标

    :param rowNo: 行号

    :param colsNo: 列号

    :return: 单元格的对象

    get_cell_of_value(self, sheet, coordinate=None, row_no=None, cols_no=None)

    :param sheet: sheet对象

    :param coordinate:坐标

    :param row_no:行号

    :param cols_no:列号

    :return:cell值

    get_cols_number(self, sheet)

    :param sheet: sheet对象

    :return: sheet中有数据区域的列结束行号

    get_column(self, sheet, col_no)

    :param sheet: sheet对象

    :param col_no: 下标从1开始

    :return:

    get_row(self, sheet, row_no)

    :param sheet: sheet对象

    :param rowNo: 从1开始

    :return: 返回的是这一行所有的数据内容组成的tuple

    get_rows_number(self, sheet)

    :param sheet: sheet对象

    :return: sheet中有数据区域的行结束行号

    get_sheet_by_index(self, sheet_index)

    :param sheet_index: sheet的索引号

    :return: sheet对象

    get_sheet_by_name(self, sheet_name)

    :param sheet_name: excel中的sheet名字

    :return: sheet对象

    get_start_col_number(self, sheet)

    :param sheet: sheet对象

    :return: sheet中有数据区域的开始的列号

    get_start_row_number(self, sheet)

    :param sheet: sheet对象

    :return: sheet中有数据区域的开始的行号

    write_cell(self, sheet, content, coordinate=None, row_no=None, cols_no=None, style=None)

    :param sheet: sheet对象

    :param content: 写入的内容

    :param coordinate: 坐标

    :param row_no: 行号

    :param cols_no: 列号

    :param style: 字体颜色的名字,比如red,green

    :return:成功返回True

    write_cell_current_time(self, sheet, coordinate=None, row_no=None, cols_no=None)

    :param sheet: sheet对象

    :param coordinate: 坐标

    :param row_no: 行号,下标从1开始

    :param cols_no: 列号,下标从1开始

    :return:成功返回True

    3.3.Web操作脚本

    主要实现页面元素查找功能的封装和页面校验断言assert的封装

    class WebPageAction(builtins.object)

    Methods defined here:

    init

    (self)

    :param browser_name:浏览器的类型  chrome firefox ie

    accept_alert(self)

    弹出提示框操作

    assert_driver_title_is(self, title)

    assert_is_text_in_element(self, locator, text, timeout=10)

    判断文本是否存在于文本中

    :return:

    assert_is_value_in_element(self, locator, value, timeout=10)

    判断value属性值是否相同

    :return:

    assert_string_in_pagesource(self, string)

    :param string: 断言页面源码是否存在某关键字或关键字字符串

    :return: 成功返回True,否则False

    back_browser(self)

    返回上一页

    capture_screen(self)

    屏幕截图

    :return:

    clear(self, locator)

    click(self, locator, timeout=10)

    点击元素

    :return:

    close_browser(self)

    关闭浏览器

    :return:

    close_window(self)

    关闭当前页面

    :return:

    find_element(self, locator, timeout=10)

    定位一个元素

    find_elements(self, locator, timeout=10)

    定位一组元素

    input_text(self, locator, text, timeout=10)

    写入数据

    :return:

    maximize_browser(self)

    窗口最大化

    :return:

    open_browser(self, browser_name=None)

    open_url(self, url)

    打开网址

    :return:

    random_choice_select(self, loc_1, loc_2='option')

    随机选择下拉框

    refresh_browser(self)

    刷新浏览器

    :return:

    select_by_index(self, locator, index, timeout=10)

    索引定位下拉框选项

    :param locator: 定位器,是一个元组

    :param index: 接收索引

    :param timeout: 最大等待时间

    :return:

    select_by_text(self, locator, text, timeout=10)

    文本信息定位下拉框选项

    :param locator: 定位器,是一个元组

    :param text: 接收文本信息

    :param timeout: 最大等待时间

    :return:

    select_by_value(self, locator, value, timeout=10)

    value值定位下拉框选项

    :param locator: 定位器,是一个元组

    :param value: value值的接收

    :param timeout: 最大等待时间

    :return:

    select_checkbox(self, locator, timeout=10)

    选择单个复选框

    :param locator: 定位器,是一个元组

    :param timeout: 定位器,是一个元组

    :return:

    select_checkboxes(self, locator, timeout=10)

    全选复选框

    :param locator: 定位器,是一个元组

    :param timeout: 最大等待时间

    :return:

    select_radio(self, locator, timeout=10)

    单选框选中定位

    :param locator: 定位器,是一个元组

    :param timeout: 最大等待时间

    :return:

    sleep_seconds(self, seconds)

    强制等待

    3.4.日志记录

    通过logging模块记录系统的运行日志

    3.5.配置

    方便excel在调整列或者以后添加列后的维护。

    3.6.运行

    (1)自定义一个在excle写结果的函数

    (2)执行用例的步骤

    a)先获取要执行的用例,遍历找到要具体执行用例的sheet表。

    b)执行sheet表中的步骤。

    i.根据sheet中的步骤判断当前用例执行是否成功(需要执行的用例数等于执行通过的用例数,则执行成功)

    ii.如果有错误就截图,并保存错误日志

    iii.测试过程中统计执行了多少用例,成功多少,失败多少。

    c)把执行结果写到excle中

    4.项目代码

    4.1.代码

    4.2.运行结果

    5.框架分析

    (1)使用外部测试数据文件,使用Excel管理测试用例的集合和每个测试用例的所有测试步骤,实现一个文件中完成测试用例的维护

    (2)每个测试用例的测试结果在一个文件中查看和统计

    (3)通过定义关键字,操作元素的定位方式及定位表达式和操作值就可以实现每个测试用例步骤的执行,可以更加灵活地实现自动化测试的需求

    (4)实现定位表达式和测试代码的分离,实现定位表达式直接在测试数据文件中进行维护。

    (5)框架提供日志功能,方便调试和监控自动化测试程序的执行

    (6)基于关键字测试框架,即使不懂开发技术的测试人员也可以实施自动化测试,便于在整个测试团队中推广和使用自动化测试技术,降低自动化测试实施的技术门槛

    (7)基于关键字的方式,可以进行任意关键字的扩展,以满足更加复杂项目的自动化测试需求

    (本文由源码时代技术老师撰写,转载请注明出处)

    展开全文
  • UFT GUI 测试解决方案采用关键字驱动测试的概念, 以增强测试创建和维护。 关键字驱动测试是一项将大量编程工作与实际测试步骤分离的技术。这使您能够较早 地创建测试步骤, 即使应用程序中有大量变更或测试需要...

    相关项: GUI 测试和组件
    UFT GUI 测试解决方案采用关键字驱动测试的概念, 以增强测试创建和维护。
    关键字驱动测试是一项将大量编程工作与实际测试步骤分离的技术。这使您能够较早
    地创建测试步骤, 即使应用程序中有大量变更或测试需要大量变更, 也只需较少的更
    新便可维护这些步骤。
    l 使用关键字驱动方法, 测试自动化专家通过与“关键字视图”往返同步的集成式脚本
    编写和调试环境, 拥有了对基础测试和对象属性的完整访问权限。
    l 熟悉VBScript 的高级测试者还可以使用编辑器添加和更新语句, 以通过编程来增强
    测试。使用编辑器可增强测试的能力和灵活性。
    l UFT 还提供了插件以允许您测试在常用开发环境中创建的对象(控件)。
    有关支持的GUI 测试功能的更多详细信息, 请参见其他GUI 测试功能和工具(第63
    页)。
    基本GUI 测试的结构如下:
    l 测试由对操作的调用组成。使用操作有助于将测试分成若干逻辑单元, 就像网站的
    几个主要部分, 或在应用程序中执行的特定活动。通过创建调用多个操作的测试,
    可设计更具模块化、更有效的测试。
    l 每个操作都由步骤组成。向操作中添加步骤时, 步骤会显示在作为“关键字视图”或
    编辑器一部分的UFT 窗口中。在“关键字视图”中, 每个步骤都包括自动生成的文
    档, 对步骤会执行哪些操作进行纯语言文本描述。
    l 执行运行会话时, UFT 会执行测试中的每个操作。结束运行会话后, 您可以查看报
    告, 报告中对执行了哪些步骤、哪些步骤成功或失败有一个详细的描述。
    创建测试之后, 您可以添加增强功能:
    l 在测试中编辑操作时, 可以插入一个步骤来检查应用程序中特定对象的属性。例
    如, 可以检查对话框的特定位置是否显示特定文本字符串, 或者检查网页上的超文
    本链接是否可以转到正确的URL 地址。
    l 还可以创建函数库, 并从测试中调用函数。例如, 可以定义函数并在测试中将函数
    作为关键字使用。
    展开全文
  • 自学QTP有一小段时间了,起先对数据驱动以为理解没有错误,后来经人指点,完全理解肤浅了^_^,对关键字驱动则是一直概念模糊,所以综合51testing上的内容,自己整理汇总了一下,列在此:  关于数据驱动,以下这篇...

    关于数据驱动和关键字驱动 

    2009-10-27 10:57:22|  分类: 自动化测试 |  标签: |举报 |字号 订阅

    自学QTP有一小段时间了,起先对数据驱动以为理解没有错误,后来经人指点,完全理解肤浅了^_^,对关键字驱动则是一直概念模糊,所以综合51testing上的内容,自己整理汇总了一下,列在此:

      关于数据驱动,以下这篇帖子还是给了很大的启发:http://bbs.51testing.com/viewthread.php?tid=113729&extra=&highlight=%CA%FD%BE%DD%C7%FD%B6%AF&page=1

      摘录一些精妙的论点:

     51testing论坛的phililschen:

     
     “什么是数据驱动呢?很大一部分人肯定认为数据驱动就是把需要参数化的东西写在EXCEL里,然后在跑脚本时调用。如果我告诉你,这其实不是数据驱动,
    而只是较高级的参数化,你肯定会很惊讶!现在我来解释一下:首先为什么叫数据驱动呢,那么它肯定有驱动的含义,比如你用EXCEL可以控制测试的业务流吗?回答是不能的。那又如何作到驱动呢?所以说我们将测试数据放在独立的文件里只是高级的参数话。而数据驱动,你必须有数据来控制测试的业务流。比如你测一个WEB程序,有很多页面,你可以通过一个数据来控制每次是再哪个页面下工作的(即通过数据来导航到相应的页面)。它是关键字驱动的低级版本,他控制的是函数级的,而关键字是控制动作级的。所以数据驱动应该是可以控制整个测试的”

      51testing论坛的dreamever:

      “数据驱动本身不是一个工业级标准的概念,因此在不同的公司,都会有好几个解释版本。首先我同意楼主的关于数据驱动的观点,也就是说如果我们仅仅是把测试数据放在数据文件里,这只是一种比较高级的参数化而已。其实我更倾向于把数据驱动理解为一种模式或者一种思想

      对于数据驱动的讨论,我们不妨先抛开QTP来进行。无论是进行自动化测试还是手工测试时,我们都需要设计测试用例,准备测试数据,并且把测试用例与数据分开,在一套测试用例上运行多套测试数据是比较有效率的。我相信这一点大家应该都认同吧。

     
     那么我们不妨再看一下手工测试的场景:当一个手工测试人员A发现在测试数据存储目录下多了一套测试数据时,他就会意识到应该马上执行测试用例,并输入这
    套新的测试数据。其实是测试数据的变化触发了A的测试行为。(有人可能说了我们公司不是这么做的,注意,我们不是在讨论实际的测试管理,我们在对测试模型
    进行抽象)。如果我们更抽象一下,可以这样来看:当测试数据变化时,测试用例就会被执行(无论是A主动还是leader打电话通知),并且按照预先定义的
    规则去读取测试数据并执行测试用例。那么这种情况我们是不是可以理解为一种数据驱动呢?也就是说只要有了新的测试数据或者测试数据发生了变化,那么A就会
    去执行测试用例。这一过程的目的就是为了让所有的测试数据都得到输入并返回相应的输出结果。

      如果大家同意上面的情景是一种数据驱动测试
    的例子,那么我们可以对自动化测试中的数据驱动进行同样的解释:由机器自动读取测试数据,然后测试用具运行测试脚本执行测试用例,并按照预先设置好的参数
    化字段读取测试数据,返回测试结果。目的就是使所有的测试数据都得到输入,并返回输出,验证数据的输入和输出是否符合预期值。这里的测试数据不仅包括业务
    数据,还包括一些动作关键字或决策关键字,以提供足够的信息,让测试工具知道该调用什么样的脚本,应该如何处理各种情况。相对于不同的测试工具,其表现形
    式有可能不同,QTP提供了关键字视图和数据表,robot提出了决策表的概念,Watir的话本身没有什么特殊的模式,完全看测试人员把框架设计成什么
    样了。其实本质上都是消息驱动的不同表现而已,例如刚才的手工测试的例子,测试数据发生变化我们可以把它看成一种消息,接收到这个消息A就开始执行测试。

      51testing论坛的jackmail:

      “数据驱动中的 driven
    一词,你可以简单的理解成导向,导向什么?结果。就是测试数据决定了测试结果,这就是所谓数据驱动,QTP实现了数据驱动的功能,模型,feature,
    特征,无非是个词汇而已,怎么说都没问题,用QTP你可以简单的完成你想实现的数据驱动方法的测试,他就是实现了xx功能。

      还有关键字驱动,就是 关键字决定了结果。 在QTP里关键字就是step中的测试对象名称(对象方法属性,或者值(测试数据))。测试对象名称的改变,就决定了结果的变更。以前有些人写的所谓框架是把对象从Excel表格中导入导出的,他们实现的就是关键字驱动。

      什么驱动,就是什么决定结果。本来结果是固定的,由于驱动数据的变更,导致了结果的不同,没那么复杂。其实概念都是人定的,少去钻牛角尖,理解个大概意思就行了。”

      最后引用一下一篇关键字驱动的理解的文章,毕竟这是QTP主推的东西

      最初用QTP就是简单的录制,然后修改脚本,缺点如下:

      1. 应用软件必须具备一定的稳定性,并且在整个业务流程上都必须完整的实现了,否则顺序录制整能实现?

      2. 自动化脚本的维护性成本非常的高

      3. 自动化脚本的可重用性比较差

      随之出现了关键字驱动的概念,一切都以对象为出发点,这有点像编程语言中从过程化向面向对象转化,在QTP中的具体实现方法是:

      1. 在单个程序界面上将测试所涉及到的对象手工添加到对象库中

      2. 在专家视图中基于对象库中的对象编写自动化测试脚本

      以上这样做的明显的优点在于:

      1. 脚本的可控性非常的强,模块化组织也比较好

      2. 可以在开发完全实现所有的业务流程功能前就建立测试脚本,占据了比较大的主动性,为时间上的安排提供了更大的空间,一个词概括:“测试先行”

    展开全文
  • 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为 Item.Operation(Value) 3. 将测试逻辑按照这些...

    原理及特点

    1.         关键字驱动测试是数据驱动测试的一种改进类型

    2.         主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为 Item.Operation(Value)

    3.         将测试逻辑按照这些关键字进行分解,形成数据文件。

    4.         用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化

     

    Kiki】其实关键字驱动不是一个新名词,早在QTP发布之前,就有ABTAction-Based Testing)一说,而且有些不是很有名的工具早就用了关键字驱动,如LogigearTestArchitect。不过由于MI工具在国内的普及及QTP良好的易用性和图形化的优越,使得一出现就受到大家的青睐。

    展开全文
  • 他在这篇文章里写到的模块化,数据驱动,关键字驱动正好可以和我们公司的测试框架吻合起来,让我有了更明白的认识,希望后面自己学习框架的时候完全套上这样的思想做。 摘录: 那么,什么是自动化测试框架呢? ...
  • 我们把上面的这种设计方法叫做关键字驱动,总结以下两点。 1.关键字驱动框架是一种功能自动化测试框架 被称为表格驱动测试 被称为基于动作字的测试。 2.关键字驱动的框架的重要组成部分 测试步骤(Test Step)...
  • 自学QTP有一小段时间了,起先对数据驱动以为理解没有错误,后来经人指点,完全理解肤浅了^_^,对关键字驱动则是一直概念模糊,所以综合51testing上的内容,自己整理汇总了一下,列在此:  关于数据驱动,以下这篇...
  • 概念我们把上面的这种设计方法叫做关键字驱动,总结以下两点。1.关键字驱动框架是一种功能自动化测试框架被称为表格驱动测试被称为基于动作字的测试。2.关键字驱动的框架的重要组成部分测试步骤(Test Step)...
  • 关键字驱动测试 数据驱动测试 前一篇所讲的模块化驱动测试能够很好的解决脚本重复的问题,但是在针对同一个功能进行不同数据的测试,从而检测测试结果的变化时仍然需要重复地编写测试脚本。于是,数据驱动测试的...
  • 很多人在接触自动化测试时,都会听到关键字驱动这样的一个概念,但是在研究时却有些不太清楚这种驱动模式的设计及实现到底该如何着手去做。 关键字驱动,作为一种自动化测试框架的设计形式,在很早的时候就已经有...
  • test_api框架介绍接口测试框架 --持续完善中 pytest + requests + jenkins + allure 添加pandas(数据分析部分)本框架使用关键字自动化测试框架概念 需要一定的python基础 可适用于复杂业务逻辑api 也可适用于详细的...
  • RobotFramework--初步学习

    2020-08-04 16:43:48
    文章目录RF介绍介绍概念工具安装ride.py安装eclipse+...关键字驱动 概念 Setings 设置项。包括导入库、资源、变量,设置变量、设置setup/teddown等 Librarys: 库:提供一系列的关键字 Keywords: 关键字:提供特定
  • test_api框架介绍接口测试框架 --持续完善中 pytest + requests + jenkins + allure 添加pandas(数据分析部分)本框架使用关键字自动化测试框架概念 需要一定的python基础 可适用于复杂业务逻辑api 也可适用于详细的...
  • 大家好我是执念,本博文源于java基础,旨在讨论this关键字在java的妙用。java中this关键字让不少...知道这个关键字不会用最尴尬,真可谓“概念不清淅是产生bug的根源”,今天执念带领大家认识this关键子,案例驱动哦!
  • 代码块分为4种 1.局部代码块: 在方法中,限定了局部变量的作用范围 2.构造代码块 : 类中方法外,顾名思义,就是实例对象时调用,优先于构造函数...4.同步代码块,多线程中才用到,新手先知道有这概念即可 下面有段代码,
  • 本文介绍Java人们的一些基本概念。 正文 1.编程语言 一组有规则的指令集合(指令可驱动计算机工作的指令) 3.面向过程与面向对象的区别 过程,关注函数与函数之间的关系;对象,关注对象与对象之间的关系 4.语言的...
  • 关于自动化测试的几个概念/阶段

    千次阅读 2008-03-12 11:33:00
    自动化测试,老实讲,个人目前对于数据驱动测试的把握是比较到位的,但是对于关键字驱动的测试应用不是很熟练,或许在数据驱动的测试过程中已经应用了关键字驱动的一些理念来设计,但是对于关键字驱动的测试精髓把握...
  • 本系列的其他文章涵盖了模块化和关键字驱动的框架。编者注:本文是基于使用IBM?Rational?FunctionalTesterforJava?andWeb6.1和WindowsXPProfessionalSP2编写的。代码实例将使用Java编写的,但所有概念同样也适用于R
  • 在OpenTest 之 运行环境准备中介绍... 在学习语法之前,需要了解一下关键字驱动测试方法的基本概念,这样有利于我们了解OpenTest语法的基本组成。  关键字驱动测试是数据驱动测试的一种改进类型,主要关键字包括...
  • 基于文件过滤驱动的透明加解密

    千次阅读 2015-10-20 14:01:22
    关键字:透明、文件过滤驱动、加密标识,缓存   文件过滤驱动最重要的两点是搞定加密标识和缓存管理 1、透明概念: 透明指的是用户在操作的时候,虽然后台在自动的进行加解密,但是用户根本就不知道...
  • 智能制造概念

    2020-09-04 15:21:04
    最初由德国在2011年的汉诺威工业博览会中提出了工业4.0的概念,并被德国纳入重点发展项目。与此对应我国在2015年提出了《中国制造2025》,作为中国实施制造强国的第一个十年行动纲领,到2025年从“制造大国”变身为...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 192
精华内容 76
关键字:

关键字驱动概念