robotframework是一个关键字驱动框架,核心在于关键字的应用。系统本身通过各种库自带了大量关键字,同时支持用户自定义关键字。关键字可以简单理解为各种处理数据的方法。

关键字区别与用户参数。

为什么使用用户关键字:

以selenium库为例,在robotframework中,提供了大量函数,来执行浏览器操作。可以直接把参数写在用例中。

例如:

又例如:

可以看出,上述参数设置维护性差,且复用差。如果涉及大量重复使用参数,上述写法将导致开发效率极差。robotframework实现了流程层和元素层分离的分层方法。

创建用户关键字大体步骤如下:

1、创建资源文件

为了方便更好的管理,我们可以重新创建一个目录专门拿来存放用户关键字、数据等资源。同时为了更好的管理关键字,我们把关键字放在不同的resource模块下,也就是先创建resource,再在resource下创建具体的关键字。

如下图例,说明参数文件中用户关键字的设置:

  • Arguments:设置传入参数

变量类型:robotframework里的变量分两种。一种是Scalar,可以理解为单值变量。Scalar型变量用$符号开头。

在使用上要注意看关键字的参数到底是Scalar的还是List,区别就是看变量名前面是否有 * (星号)。

一种是List Variable,list型变量,或者可以理解为数组变量。List型变量用@符号开头。理论上可以互相进行转换,视为同一变量。所以注意尽量不要让取值不同的Scalar和List的变量重名,以免冲突。

arguments写法注意点:

1、多个传入值之间以“|”分隔。

2、${xx}=${EMPTY},这样书写就表示该变量可以不传;

3、${xx}=xx,这样书写表示如果该变量没传值,则会默认使用xx作为变量的值

4、${xx},这样书写则表示该值必填。

5、必填参数必须位于最前面,后面再跟可以为空和有默认值的参数(这两个没有顺序之分)

6、List变量也是可以作为参数,但是List变量只能放在最后一位。1维变量,元素引用使用${list[n]}(从0开始,长度-1  结束)。二维变量用${list[n][m]}(从0开始,长度-1  结束)。

例如:

Teardown:设置完成时的动作

    表示在这个用户关键字执行完成之后会执行什么关键字。比如写上Close All Browsers。在这里也可以处理返回值

ReturnValue:返回值

    写法同arguments类似。

Timeout:超时时间

   单位默认分钟。超过设置时间则关键字失败。

robotframework用户关键字创建过程的更多相关文章

  1. robotframework之用户关键字的用法

    robotframework是一个关键字驱动框架,核心在于关键字的应用 目录 1.如何创建用户关键字 2.调用用户关键字 3.用户关键字的使用场景 1.如何创建关键字 第一种:直接在项目上右键,添加用 ...

  2. Robot Framework学习笔记(九)------创建资源和用户关键字

    一.测试套件下创建用户关键字 1.创建关键字测试套件右击->点击new user keyword,然后输入name,点击OK保存. 2.在用户关键字的edit点击settings,然后输入Arg ...

  3. RobotFramework AppiumLibrary 用户关键字

    RobotFramework AppiumLibrary 用户关键字 最近在用robotframework搞安卓app 的自动化,其中用到了 AppiumLlibrary 的关键字,我都映射成了用户关 ...

  4. Robot Framework(七)创建用户关键字

    2.6创建用户关键字 关键字表用于通过将现有关键字组合在一起来创建新的更高级别关键字.这些关键字称为用户关键字,以区别于 测试库中实现的最低级库关键字.创建用户关键字的语法与创建测试用例的语法非常接近 ...

  5. 从简单示例看对象的创建过程, 为什么双重检查的单例模式,分析Volatile关键字不能少

    编译指令 :javac Test.java 反编译指令: javap -v Test 代码 public class ObjectTest { int m = 8; public static voi ...

  6. vc++窗口的创建过程(MFC消息机制的经典文章)

    一.什么是窗口类  在Windows中运行的程序,大多数都有一个或几个可以看得见的窗口,而在这些窗口被创建起来之前,操作系统怎么知道该怎样创建该窗口,以及用户操作该窗口的各种消息交给谁处理呢?所以VC ...

  7. 贯穿RobotFramework框架 - 关键字(一) 最全面的疏理

    在RF中,关键字是一个非常重要的存在.想做任何事情,都是通过关键字来实现的. 这篇文章对RobotFramework中的关键字做个整理.大概分为以下几点内容: 1.什么是关键字 2.关键字来自哪里.有 ...

  8. 有谁知道Delphi中"窗口"的创建过程?

      求助:有谁知道Delphi中窗口的创建过程,此“窗口”不仅仅指 TForm 类型, 还包括一般的窗口控件,如TButton,TEdit等等,希望有能够十分详细的运作 过程,比如说CreatPara ...

  9. robotframework常用关键字

    robotframework关键字 可以将关键字看作是处理数据的方法.robotframework的关键字和测试数据组成了测试用例. robotframework关键字包括系统关键字和用户关键字.用户 ...

随机推荐

  1. 1.关于逆向工程(RE、RCE)-笔记

    名词 逆向工程(Reverse Engineering,简称RE):代码逆向工程(Reverse Code Engineering,简称RCE). 逆向分析方法 静态分析:不执行代码,观察外部特征.获 ...

  2. calc 用法以及原理

    CSS3 的 calc() 函数允许我们在属性值中执行数学计算操作.例如,我们可以使用 calc() 指定一个元素宽的固定像素值为多个数值的和. 它是CSS预处理器 .foo { width: 100 ...

  3. JSON简单了解

    JSON简单了解 简介 JSON (JavaScript Object Notation):一种简单的数据格式,比xml更轻巧.JSON 是 JavaScript 原生格式,这意味着在 JavaScr ...

  4. JavaWeb——MySQL约束

    内容索引 1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 2. 约束 3. 多表之间的关系 4. 范式 5. 数据库的备份和还原 DQL:查询语句 1. 排序查 ...

  5. uboot1: 启动流程和移植框架

    目录 0 环境 1 移植框架 3 执行流程 3.0 链接地址 3.1 start.S, 入口 3.2 __main 3.3 board_init_f()和init_sequence_f[] 3.4 r ...

  6. 一道codeforces题目引发的差分学习

    Codeforces Round #688 (Div. 2) 题目:B. Suffix Operations 题意:给定一个长为n的数组a,你可以进行两种操作:1).后缀+1;     2)后缀-1: ...

  7. C# 搞桌面UI适配国产麒麟Linux+龙芯遇到的一些坑

    由于一些国企有国产化的需求,所以搞了C#适配银河麒麟,适配了X64和龙芯MIPS版本 1. 在银河麒麟的龙芯版本中 pipe2 不能使用,x64版本上却可以用.  pipe2 用来做自定义消息的,搞U ...

  8. 最全的go语言的时间格式

    该文可以快速在Go语言中获得时间的计算. 在Go中获取时间 如何获取当前时间 now := time.Now() fmt.Printf("current time is :%s", ...

  9. BUUCTF(八)[极客大挑战 2019]LoveSQL

    BUUCTF 1.打开题目 注入方法可参考NewsCenter 2.测试注入点 username: 1'or'1=1 password: 1'or'1=1 登录成功,说明存在注入漏洞. 下面测试位点个 ...

  10. Linux_ACL文件访问控制列表

    一.ACL文件访问控制列表 前言 1️⃣:ACL-文件访问控制列表: 2️⃣:ACL可以针对单个用户,单个文件或目录来进行r.w.x的权限设定,特别适用于需要特殊权限的使用情况. 3️⃣:ACL就是可 ...