gpt4 book ai didi

python - 机器人框架中的关键字是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:47:56 25 4
gpt4 key购买 nike

我找不到任何解释。即使在引入关键字的tutorial中,也不能解释我将从该概念中受益的方式。

因此,为了使我的问题更清楚:说我有一个自己编程的客户端和服务器。我想使用Robot Framework来测试它们是否可以协同工作。 “关键字”在哪里适合?可以用简单抽象的测试术语来解释吗?

PS:解释其他概念,例如库和变量(尽管它们看起来很明显),受到高度赞赏。

最佳答案

概述

将关键字视为一个测试步骤。正如测试在概念上由许多步骤组成一样,机器人测试也由许多关键字组成。关键字是构建所有机器人测试的基础。

机器人提供了通用关键字,您可以创建自己的专用关键字。当您创建自己的关键字时,robot框架的真正功能就是使测试可以专注于测试逻辑,而不是基础实现。

例如,让我们考虑一下登录到服务器的验收测试。从敏捷产品所有者或首席设计师的角度来看,它可能看起来像这样:

  • 打开 super 网站2000浏览器!
  • 输入有效的用户名
  • 输入有效的密码
  • 单击“开始”按钮
  • 您应该在仪表板页面上

  • 从字面上看,这可能是产品所有者在故事卡或票证跟踪系统中添加为接受标准的内容。如果那是一个可以运行的实际测试,那不是很好吗?

    示例测试用例

    这些步骤中的每一步都可以视为关键字。关于机器人的一大优点是,您可以编写看起来与原始规范几乎完全相同的测试:
    *** Test Cases ***
    Login of an existing customer
    [Setup] Open a browser to Super Website 2000!
    [Teardown] close all browser windows

    Enter a valid username
    Enter a valid password
    Click the GO button
    You should be on the dashboard page

    关键字实现示例

    要使此测试用例运行,您将需要定义这些关键字,因为机器人不知道“打开 super 网站2000浏览器!”是什么。方法。您可以用python或其他几种语言编写它们,也可以通过组合现有关键字来编写它们。

    例如,可以使用 Selenium2Library关键字来实现前几个关键字,如下所示:
    *** Settings ***
    Library Selenium2Library

    *** Variables ***
    ${ROOT} http://super.website2000.com
    ${BROWSER} chrome

    *** Keywords ***
    Open a browser to Super Website 2000!
    # this is a pre-defined Selenium2Library keyword
    Open browser ${ROOT} ${BROWSER}

    Enter a valid username
    # these are pre-defined Selenium2Library keywords
    wait until element is visible id=username_input
    input text id=username_input Test User #1

    Enter a valid password
    # these are pre-defined Selenium2Library keywords
    wait until element is visible id=password_input
    input text id=password_input LetMeIn!

    如您所见,您可以使用关键字来编写易于阅读的测试用例。可以使用其他关键字来设计关键字,也可以使用编程语言编写关键字。

    没有自定义关键字的替代示例

    当然,您不必编写这样的关键字。您可以在测试中直接使用Selenium2Library关键字,这将使您的测试看起来像这样:
    *** Test Cases  ***
    Login of an existing customer
    [Setup] Open browser ${ROOT} ${BROWSER}
    [Teardown] close all browsers

    wait until element is visible id=username_input
    input text id=username_input Test User #1
    wait until element is visible id=password_input
    input text id=password_input LetMeIn!
    wait until element is enabled id=submit_button
    click button id=submit_button
    wait until element is visible id=//div[@class='dashboard']
    location should be ${ROOT}/dashboard

    我个人认为测试的第一个版本更具可读性,但必须维护一些自定义关键字。

    自定义关键字的优势

    通过使用关键字,您可以隐藏网页实现的详细信息,以便您可以专注于测试的逻辑。另外,多个测试可以重用相同的关键字。

    实现的实际详细信息(元素ID,URL等)都可以嵌入到关键字中。如果这些详细信息发生更改,则无需更改任何测试用例。相反,您可以更改关键字,然后测试将继续运行。想象一下,如果开发人员将输入的id更改为 username_form_fieldpassword_form_field,您是否要编辑每个必须登录的测试用例,还是要编辑所有测试共享的一个或两个关键字?

    变数

    机器人框架中的变量非常强大。例如,您可以在一个位置定义站点的根URL,而不是在每次测试中对其进行硬编码。对于大多数生产站点,您必须使用两个,三个甚至更多的URL运行测试。例如,您可能有一个本地开发箱,一个质量检查箱,一个临时箱和一个生产箱。

    Robot使您可以在命令行或参数文件中覆盖变量。这意味着您可以创建一组可以在多个系统上运行的测试。例如,要在舞台上使用firefox运行测试,您可以这样做(为了清晰起见,请分成多行):
    $ pybot \
    --variable ROOT:http://staging.example.com \
    --variable BROWSER:firefox \
    /path/to/tests

    要在带有chrome的QA1上运行完全相同的测试,您可以执行以下操作:
    $ pybot \
    --variable ROOT:http://qa1.example.com \
    --variable BROWSER:chrome \
    /path/to/tests

    图书馆

    简而言之,关键字被组织到库中。机器人带有许多库,并且互联网上还有更多可用的库。

    像在这些示例中一样,可以使用机器人语法来编写库,但是也可以使用诸如python和java之类的编程语言来编写库。使用编程语言可以执行复杂的逻辑,而使用机器人语言可以使您更轻松地将现有关键字合并为新关键字。

    敏捷环境中的关键字

    如果您在Scrum团队中工作,那么关键字驱动的方法可以帮助团队变得非常高效。例如,如果您的测试人员不熟练,则开发人员可以创建关键字库以与测试进行交互,从而使测试人员不必担心页面的详细信息。

    另一方面,如果您拥有技术水平很高的测试人员,他们可以自己编写关键字,以便开发人员可以将更多的时间花在实际产品上。

    在这两种情况下,关键字驱动的方法都使质量保证和开发团队可以共同创建高质量的产品。

    关于python - 机器人框架中的关键字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307753/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com