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. nodejs-模块系统

    Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node. ...

  2. (Py练习)输入某年某月判断天数

    # 输入某年某月,判断这一天是这一年的第几天 year = int(input("year:\n")) month = int(input("month:\n" ...

  3. android之Parcelable

    java编程中,为了将对象的状态保存,需要将对象序列化. 在android中,序列化有两种方法可供选择,一个是java自带的序列化方法,只需实现Serializeable接口即可:另一个是androi ...

  4. 多线程-3.sleep() yield() join()

    1.sleep()方法 jdk文档描述:Causes the currently executing thread to sleep (temporarily cease execution) for ...

  5. k3d入门指南:在Docker中运行K3s

    在本文中,我们将简单了解k3d,这是一款可让您在安装了Docker的任何地方运行一次性Kubernetes集群的工具,此外在本文中我们还将探讨在使用k3d中可能会出现的一切问题. 什么是k3d? k3 ...

  6. java面试一日一题:java中垃圾回收算法有哪些

    问题:请讲下在java中有哪些垃圾回收算法 分析:该问题主要考察对java中垃圾回收的算法以及使用场景 回答要点: 主要从以下几点去考虑, 1.GC回收算法有哪些 2.每种算法的使用场景 3.基于垃圾 ...

  7. LVHA爱恨原则

    关于link 和 visited是否访问过,讲得应该是对浏览器而言该网页之前是否访问过, 而不是只对单次生成页面而言

  8. [bug] SSM项目:Cannot load driver class: com.mysql.jdbc.Driver

    检查pom文件,mysql包部分为: <dependency> <groupId>mysql</groupId> <artifactId>mysql-c ...

  9. [DB] Hadoop免密登录原理及设置

    情景: 现有两台电脑bigdata111.bigdata112,bigdata111想免密码登录bigdata112 过程: 1.bigdata111生成公钥(用于加密,给别人)和私钥(用于解密,自己 ...

  10. [刷题] 416 Partition Equal Subset Sum

    要求 非空数组的所有数字都是正整数,是否可以将这个数组的元素分成两部分,使得每部分的数字和相等 最多200个数字,每个数字最大为100 示例 [1,5,11,5],返回 true [1,2,3,5], ...