【Robot Framework】RF关键字大全

news2024/11/23 19:45:37

收录工作当中最常用的Robot Framework关键字

内容较多,可以Ctrl+F快速搜索自己想要的

1. RF循环使用(FOR循环)

@{list1} create list LOG TXT INI INF C CPP JAVA JS CSS LRC H ASM S ASP
FOR ${file_type} IN @{list1}
log 构造请求参数
${taskID} generate random string
XXXXXX
END


2. RF条件语句使用

  1. OR 用法
    if “ r e s p [ 3 ] [ d a t a ] [ s t a t u s ] " = = " S U C C E S S " o r " {resp}[3][data][status]" == "SUCCESS" or " resp[3][data][status]"=="SUCCESS"or"{resp}[3][data][status]” == “FAIL”

  2. AND 用法
    if “ r e s p [ 3 ] [ d a t a ] [ s t a t u s ] " = = " S U C C E S S " a n d " {resp}[3][data][status]" == "SUCCESS" and " resp[3][data][status]"=="SUCCESS"and"{resp}[3][data][status]” == “FAIL”


3. RF的log方法

控制台打印日志:log to console
同时打印多个变量:log many
在IF判断后打印日志:
Run KeyWord If “${resp}[3][data][status]”==“SUCCESS” BuiltIn.Log 接口响应快速,无需等待
… ELSE BuiltIn.Log 异步队列等待中


4. 获取${requestBody}的type

h e a d e r s T y p e E v a l u a t e t y p e ( {headersType} Evaluate type( headersTypeEvaluatetype({headers})


5. 变量的四则运算

${res1} Evaluate ${var1} + ${var2}
${res2} Evaluate ${var1} - ${var2}
${res3} Evaluate ${var1} * ${var2}
${res4} Evaluate ${var1} / ${var2}


6. 变量的模商余运算

${res5} Evaluate ${var1} ** ${var2}
${res6} Evaluate ${var1} % ${var2}
${res7} Evaluate ${var1} // ${var2}


7. 获取当前时间(Date形式)

${data_1} Get Current Date


8. 获取两个时间的时间差

${time} Subtract Date from Date ${data_2} ${data_1}


9. 时间转换成数字

${time} Convert To Number ${time}


10. 在herder中添加一个参数

set to dictionary ${headers} Route-Key ${route_key}


11. 生成目标范围内的整数

${start} evaluate random.randint(1,3) random


12. 字符串替换

u s e r I d e v a l u a t e s t r ( {userId} evaluate str( userIdevaluatestr({userId}).replace(‘.’,‘’)


13. 字符串多个替换

u s e r I d e v a l u a t e s t r ( {userId} evaluate str( userIdevaluatestr({userId}).replace(‘[’,‘’).replace(‘]’,‘’)


14. 字符串截取固定位置内容

u s e r I d G e t S u b s t r i n g s t r ( {userId} Get Substring str( userIdGetSubstringstr({userId}) 9 15


15. 字典多组数值取值

${userId} set variable ${resp}[3][data][users][0][id]


16. 分割字符串制成List

${testDataList} split string ${testDataStr} ${SPACE}


17. 获取List长度(元素个数)

${testDataListLen} get length ${testDataList}


18. 从元组中拿取特定的一组list数据(拿取参数信息)

${conf} get obj from list ${configResp}[3][data][items] name ${confName}
${conf}:最终赋值对象
name:目标匹配参数
c o n f N a m e :目标匹配参数的匹配值就是在结果中(元组)寻找 n a m e = {confName}:目标匹配参数的匹配值 就是在结果中(元组)寻找name= confName:目标匹配参数的匹配值就是在结果中(元组)寻找name={confName}的那一组数据,以list形式赋值给${conf}


19. 变量套变量

KaTeX parse error: Expected group after '_' at position 29: …t variable s_̲{list1}[${i}]FileId
KaTeX parse error: Expected '}', got 'EOF' at end of input: …","image_url":"{downloadUrl}?KaTeX parse error: Expected '}', got 'EOF' at end of input: {{file_id}}",“image_filename”:“xxx”}


20. 跳过(无操作)

No Operation


21. 键盘敲击

selenium press keys ${null} ENTER


22. 坐标点击

在这里插入图片描述
#移动到目标位置
PUBLIC.pyautogui move mouse ${x} ${y} ${持续时间}

#点击目标位置
PUBLIC.pyautogui click mouse ${x} ${y} ${按键次数} ${间隔时间} ${按键类型} ${持续时间}

#${按键类型} : left(左键)、middle(中键)、right(右键)、primary(基本的)、secondary(次要的)


23. 相同的元素定位按照元素索引

xpath=//input[1][@type=“password”]
xpath=//input[2][@type=“password”]
xpath=//input[3][@type=“password”]


24. 将json格式数据转换成dict格式

${expectDict} store_json_keys_to_dict ${expectJson}


25. 获取目标文件的内容(结果为string形式)

${file_contents} OperatingSystem.Get File ${CURDIR}/…/…/…/…/…/OpenSDK/index.html


26. 设置关键字失败不中断

run keyword and continue on failure xxxxx(关键字)


27. 校验dict的所有存在二级节点的key

compare dicts key name and key count ${testDict} ${expectDict}


28. 移除List中的${EMPTY}值

remove values from list ${testDataList} ${EMPTY}


29. 两个字符串转换成整数应相等

should be equal as integers ${resp}[0] 200 响应码不正确


30. 英译意为拆卸,常用于关闭驱动

[Teardown】
[Teardown】 关闭前需要执行的关键字


31. 用例初始化时,执行关键字

Test Template 关键字


32. 切换前端图层

selenium select frame ${iframe系统后台_登录}


33. 打开第二个浏览器

log 打开第二个浏览器
selenium open browser l o g i n U r l b r o w s e r = {loginUrl} browser= loginUrlbrowser={browser} alias=new1


34. 切换到第一个浏览器

selenium switch browser 1


35. 从目标字符串中取值

${x-csrf-rand} should match regexp ${fileResp}[2] “csrf_token”


36. 设置数组,遍历数组

@{list1} create list WORD_XML

FOR ${file_type} IN @{list1}
log 在这里写操作
END


37. 元素无法抓取

有些元素确实是变动的,无法抓取,可以迂回,抓固定元素
像复选框,可以直接选总复选框


38. 编辑链接为只读状态

log 获取编辑链接
${resp} open_edit_get_/api/edit/v1/files/{file_id}/link ${fileId} w
${editUrl} set variable ${resp}[3][data][link]

log 打开编辑链接,查看打印页面
selenium go to ${editUrl}
RF以这种方式获取的链接是只读的状态
想要可编辑,我们可以在编辑链接末尾加上【&_w_type=1】参数


39. 获取当前请求的性能数据

${headers} selenium execute javascript return window.performance.getEntries()


40. 获取当前页面的Url

${headers} selenium execute javascript return window.location.href


41. 获取元素定位时加入子元素

${后台_应用详情按钮} //button[@class=“ant-btn ant-btn-link”]/span[text()=“详情”]


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二十二章 解释器模式

文章目录 前言一、解释器模式基本介绍解释器模式的原理类图 二、通过解释器模式来实现四则运算完整代码抽象表达式类 Expression变量表达式类 VarExpression抽象运算符号解析器 SymbolExpression加法解释器 AddExpression减法解释器 SubExpression计算器类 CalculatorClint 测试…

【C++】仅需一文速通继承

文章目录 1.继承的概念及定义继承的概念继承的定义定义格式:继承关系和访问限定符继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数题目:设计出一个类A,让这个类不能被继承(继承了也没用) 5.继承与友元6.继承与静态成员7.复杂的菱…

VK Cup 2017 - Round 1 A - Bear and Friendship Condition(并查集维护大小 + dfs 遍历图统计边数)

题目大意: 给你一些n个点m条边,如果三个点(a,b,c)是合法的,当且仅当 a-b,b-c,c-a都有一条边,问你这个图是否合法,如果有一个或两个点视为合法 思路 考虑什么图才是个合法图:除了点…

Spring 更简单的读取和存储对象

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 前面介绍了通过配置文件的方式来存储 Bean 对象,那么有没有更简单的方式去存储 Bean 对象? 有以下 2 种方…

【论文】LearningDepth from Single Monocular Images

2005 NIPS 文章目录 特征提取卷积核的使用Multiscale 多尺度提取特征特征的相对深度 模型结论特征提取数据集导致的error 文章使用了Markov 随机场(Markov Random Fields, MRF) 从单图像上直接估计出图像的深度信息。 与RGBD输入数据不同的是,文章中采用了YCbCr数据…

知识点总结-DAY1

1. 请解释OSI模型中每一层的作用 应用层:为用户提供服务,处理应用程序之间交换的数据。 表示层:处理数据在网络上的表示形式,如加密和解密、压缩和解压缩等。 会话层:建立、维护和终止两个节点之间的会话&#xff0c…

安全防御 --- IPSec理论

IPSec 1、概述: 是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议,在IP层通过数据来源认证、数据加密、数据完整性和抗重放功能来保证通信双方Internet上传输数据的安全性。 IPSec安全服务 机密性完整性…

雨季时,骑行经过泥泞路段该怎么办?

泥泞路段骑行是一项需要技巧和勇气的挑战。在泥泞路段骑行,骑友又叫玩泥巴,不仅需要良好的车技和身体素质,还需要有足够的经验和判断力,以应对各种突发情况。下面,将从多个角度介绍泥泞路段骑行的挑战和技巧&#xff0…

宏观经济笔记--社会消费品零售总额

我们讨论了GDP的三个分项:投资、消费、净出口。投资我们前面已经介绍了,消费这一个分项我们还一直没有讨论。消费最重要的数据是每个月月中统计局公布的社会消费品零售总额。 一般的论调中,认为消费是三个GDP驱动项中最健康的一项&#xff0…

2023-5-4-Lua语言学习

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

openQA----基于openQA新增指定版本的openSUSE的iso镜像进行测试

【原文链接】openQA----基于openQA新增指定版本的openSUSE的iso镜像进行测试 (1)执行如下命令下载openSUSE的测试脚本,它会从openSUSE的测试脚本github地址 /usr/share/openqa/script/fetchneedles(2)然后执行如下命…

在 SourceTree 中使用 rebase (win10)

原始状态 创建两个分支 dev1 dev2, 并且推送到远端 切换到dev1 做一些修改并提交dev1-1,注意不要推送到到远端 切换到master分支,拉取最新的代码 切换到dev1 分支,进行变基操作,右击master分支 推送dev1分支到远端 切换到master分…

如何快速获取已发表学术论文的期刊封面及目录(caj格式下载和caj转pdf)

目录 1 下载caj格式的封面和目录 2 CAJ格式的封面和目录转PDF格式 在进行职称评审或成果申报时,一般要求提交你发表的成果所在的期刊的当期封面和目录。本文就手把手带带你制作一个期刊目录。 重要提示:下载期刊封面和目录需要你有知网账号&#xff0…

iOS 17预计开放侧载,游戏安全对抗将迎来新高度

近日,据彭博社报道,iOS 17预计开放“侧载”机制。所谓的“侧载”是指:iPhone用户下载APP时,可选择不在APP store中下载,可在相关APP官网或者第三方应用市场进行下载。 众所周知,APP闭源生态是苹果公司最核…

C++ 基础二

C 核心编程 1 内存分区模型 内存分区模型 代码区:存放函数的二级制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区&…

5.1 矩阵的特征值和特征向量

学习步骤: 学习特征值和特征向量的定义和性质,我会采取以下方法: 1. 学习线性代数基础知识:特征值和特征向量是线性代数中的重要概念,需要先掌握线性代数的基础知识,例如向量、矩阵、行列式、逆矩阵、转置…

Bark:基于转换器的文本到音频模型

Bark是由Suno创建的一个基于转换器的文本到音频模型。Bark可以生成高度逼真的多语言语音以及其他音频,包括音乐、背景噪音和简单的音效。该模型还可以产生非语言交流,如大笑、叹息和哭泣。为了支持研究社区,我们正在提供对预先训练的模型检查…

生物信息学中---数据集不平衡的处理方法

1.NearMiss: NearMiss 是 Mani 等人根据数据分布特征,基于 KNN 算法提出的欠采样方案, 对多数类样本利用随机欠采样来达到数据平衡。 根据不同数据采样的距离,可以分为三类: NearMiss-1、 NearMiss-2 和 NearMiss-3。…

什么是数据库分片?

什么是数据库分片? 数据库分片是指将一个大型数据库拆分成多个小型数据库,每个小型数据库称为一个分片。通过这种方式,可以将数据库的负载分散到多个服务器上,从而提高数据库的性能和可伸缩性。 为什么需要数据库分片&#xff1f…

从一到无穷大 #7 Database-as-a-Service租户隔离挑战与解决措施

文章目录 引言计算侧多租户隔离2DFQSQLVMRetro 其他隔离方法其他 引言 在云环境中租户之间的资源共享对于运营商的成本效益来说非常重要,但是一个主要问题是租户之间的资源隔离,这通常与Qos息息相关,从多租户的角度讲,安全性/性能…