Robot Framework 基础

2023年 1月 4日 40.8k 0

主要介绍 Robot Framework 的一些基本概念,如何写一个测试用例。

1. 基础元素

1.1 关键字 - keywords

Robot Framework 关键字类似函数。分为系统关键字和用户自定义关键字。

  • 系统关键字,通过加载 Library 引入
  • 用户关键字,通过加载 Resource 引入

1.2 库 - Library

库用来封装和复用关键字。Robot Framework 库包括系统库和用户自定义库。

  • 系统库,如 XML、String 等
  • 用户自定义库。单独安装的一些第三方库,如 seleniumlibrary 等。也可以是自己写的一些 Python 文件,比如 send_mail.py 等。

1.3 测试用例 - Test Case

按顺序组合的一些关键字与测试数据的集合,用于测试某个场景。若干个测试用例,构成一个测试套件。

1.4 资源 - Resource

资源文件的整体结构和测试用例文件一样, 只不过其中不能包含测试用例。

1.5 测试套件 - Test Suite

一个测试套件就是一个 txt 文件,里面包含多个测试用例,包括四个部分的内容。

  • Setting
  • Variable
  • Test Case
  • Keyword

1.6 变量 - Variable

变量有三种类型:

  • 标量 scalars,引用方式: ${SCALAR}
  • 列表 lists,引用方式,@{LIST}
  • 字典 dictionaries,引用方式:&{DICT}

此外,环境变量可以直接使用 %{ENV_VAR} 引用

1.7 数据类型

  • 字符串:${variable},${test}
  • 数值型:${80},${1.2}
  • 布尔值:${true},${false}
  • Null/None值:${None},${null}
  • 空格、Empty:${SPACE},${EMPTY}

2. 目录结构

可以先在本地建立,下面结构的目录,然后使用 RIDE 打开项目文件即可:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ProjectName
|---cases
|------ 测试套件
|--------- 测试用例
|---keywords (存放关键字)
|------common.txt (通用关键字)
|---res(附件资源文件夹,放图片、表格、文件等)
|---global.txt(存放一些必须的全局变量)
|---locators (存放页面上一些固定的元素,进行统一管理)
|---lib (自己写的一些库 Python 库文件)

如果需要维护的变量、用例少,那么直接使用一个文本即可。如果需要维护大量变量、用户时,再将文件拆分为文件夹,在文件夹中创建各个模块的文件,进行维护。

3. 开始写一个测试

3.1 一个测试用例的结构

  • 一些初始化操作
  • 对需要测试的页面进行一些测试操作
  • 校验页面的表现是否符合预期

3.2 一个简单的测试用例

global.txt

1
2
3
4
*** Variables ***
${site_url}       http://xxxxx.com/    # 首页地址
${username}       myname    # 用户名
${password}       password    # 密码

为了方便维护,将全局变量,定义在单独的一个文件里面。case/login.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
*** Settings ***
Resource          ../global.txt

*** Test Cases ***
登录
    Open Browser    ${site_url}    gc
    Maximize Browser Window
    Wait Until Page Contains Element    id=user
    Wait Until Element Is Visible    id=user
    Input Text    id=user    ${username}
    Sleep    1
    Wait Until Page Contains Element    id=password
    Wait Until Element Is Visible    id=password
    Input Text    id=password    ${password}
    Sleep    1
    Wait Until Page Contains Element    jquery=.login-btn
    Wait Until Element Is Visible    jquery=.login-btn
    Click Element    jquery=.login-btn
    Sleep    1

这是一个简单的测试用例,实现的功能是打开一个登陆链接,然后输入用户名和账户密码,最后登陆跳转。实际上,Robot Framework 支持 HTML、TSV、TXT、reST 等多种描述格式。不同的格式文件,Robot Framework 使用的解析器不同。以 TXT 为例。第一列表示的是测试用例名,意思是这个测试用例命名为 登陆。第二列,有两种情况,关键字或变量。上面提到,关键字是 Robot Framework 中的一等公民,可以理解为函数。函数分为有返回值和没有返回值的。如果使用的是有返回值的关键字,那么从第二列开始的若干列都可能被用于接受返回值,一直到遇到关键字为止。如果关键字没有返回值,则第二列就是需要使用的关键字。比如,这里的 Open BrowserMaximize Browser Window 都是关键字。关键字的后续列会作为参数传递给关键字。比如,这里的 id=password${password} 等。

3.3 如何使用关键字

看完上面的例子,你可能已经意思到,Robot Framework 里面关键字的重要性了。大量的操作都需要使用到关键字,同时,也需要封装自己的关键字。在 RIDE 中按 F5 可以看到内建和库的关键字,使用帮助文档。在 Web 自动化测试中,最常用的是 selenium2library 库中的关键字。

4. 参考

  • https://github.com/davyyy/robotframework-userguide-cn
  • http://www.cnblogs.com/farb/p/HowToWriteGoodTestCases.html
  • http://robotframework-userguide-cn.readthedocs.io/zh_CN/latest/
  • http://robotframework.org/Selenium2Library/Selenium2Library.html

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论