当前位置: 首页 > news >正文

【Robot Framework】RF关键字大全

收录工作当中最常用的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()=“详情”]


相关文章:

【Robot Framework】RF关键字大全

收录工作当中最常用的Robot Framework关键字 内容较多,可以CtrlF快速搜索自己想要的 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 构造请求参数 ${t…...

Xilinx Artix-7【XC7A35T-2CSG324I】【XC7A35T-1CSG324I】成本与收发器优化的FPGA器件

产品介绍: Xilinx Artix -7系列 FPGA 重新定义了成本敏感型解决方案,功耗比上一代产品降低了一半,同时为高带宽应用提供一流的收发器和信号处理能力。这些设备基于 28 纳米 HPL 工艺构建,提供一流的性能功耗比。与 MicroBlaze™ 软…...

K8S之自定义Controller

简介 在此之前我们先来了解下kubernetes的两个概念"声明式API"和"控制器模式"。"声明式API"核心原理就是当用户向kubernetes提交了一个API对象的描述后,Kubernetes会负责为你保证整个集群里各项资源的状态,都与你的API对象…...

无线电相关的SCI期刊有哪些? - 易智编译EaseEditing

以下是几个无线电相关的SCI期刊: IEEE Transactions on Wireless Communications: 这是一个IEEE无线通信协会的期刊,主要涵盖了无线通信领域的最新研究进展,包括无线网络,通信系统和信号处理等方面。 IEEE Transacti…...

Rust - 结构体基本使用

基础代码示例 为了理解何时需要使用结构体,官方文档给了一个案例,就是计算长方形的面积,这里我们会一步一步的重构代码直到使用结构体为止。 计算长方形的面积的具体逻辑就是获取长方形的宽度和高度,然后通过公式计算出长方形的…...

29. Kubernetes 核心组件讲解——Controller Manager

本章讲解知识点 Controller Manager 概述Replication ControllerNode ControllerResourceQuota ControllerNamespace ControllerService Controller 与 Endpoint Controller1. Controller Manager 概述 1.1 基本概念 一般来说,智能系统和自动系统通常会通过一个“操作系统”…...

BetaFlight统一硬件配置文件研读之feature命令

BetaFlight统一硬件配置文件研读之feature命令 1. 源由2. 代码分析3. 实例分析4. 配置情况4.1 feature4.2 feature list4.3 feature feature_name4.4 feature -feature_name 5. 参考资料 统一硬件配置文件的设计是一种非常好的设计模式,可以将硬件和软件的工作进行解…...

ChatGPT 不好用?那你看下这份 Prompt 工程指南

作为大型语言模型接口,ChatGPT 生成的响应令人刮目相看,然而,解锁其真正威力的关键还是在于提示工程。 在本文中,我们将揭示制作提示的专家级技巧,以生成更准确、更有意义的响应。无论你使用 ChatGPT 是为了服务客户、…...

冲浪杂记——

华为od是指什么? 华为OD(Open Developer Platform)是华为面向全球开发者推出的开放平台,旨在为开发者提供丰富的技术资源和开发工具,支持开发者快速构建基于华为技术的应用程序、解决方案和服务。华为OD平台为开发者提…...

深入理解Python中的进程与线程

前言 今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而…...

Data retry场景介绍

本文介绍PDN激活失败或者IP Address缺失时的处理机制。 终端是否会retry? 如何设置data retry timer? Modem retry还是上层应用发起retry? IPV4V6 Fallback 3GPP TS 24.008 6.1.3.1定义了UE使用IPV4V6 pdp type建PDN失败后,如果网络以#Cause50、#Cause51或者#Cause52 …...

lua | 数组与迭代器的使用

目录 一、数组 一维数组 多维数组 二、迭代器 泛型for迭代器 无状态的迭代器 多状态的迭代器 本文章为笔者学习分享 学习网站:Lua 基本语法 | 菜鸟教程 一、数组 数组:相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数…...

【云原生】云原生服务网格流量控制思考

文章目录 前言一、什么是流量控制?二、存在三种场景三、场景分析 前言 随着云原生技术的不断发展及应用,很多服务都已部署上云。 保障云上环境的稳定是重要的一环。 一个重要的影响稳定的场景就是突发大流量冲击。 面对该场景,较好的应对…...

《数据库的嵌套查询和统计查询》

选择Study数据库,用SQL语句进行以下查询操作。 1.嵌套查询 ①求选修了数据结构的学生学号和成绩。 SELECT Sno, grade FROM sc WHERE Cno 007;②求007课程的成绩高于于文轩的学生学号和成绩。 SELECT Sno, grade FROM sc WHERE Cno 007 AND grade …...

【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

大家好,欢迎来到停止重构的频道。 本期我们讨论网络代理。 在往期《大型网站 安全性》介绍过,出于网络安全的考虑,一般大型网站都需要做网络区域隔离,以防止攻击者直接操控服务器。 网站系统的应用及数据库都会放在这个网络安全…...

mysql备份和恢复

mysql备份和恢复 数据丢失的原因: 程序错误 人为操作错误 运算错误 磁盘故障 灾难(火灾,地震)和盗窃 数据库备份分类 物理备份 数据库此操作系统的物理文件(数据文件,日志文件等)的备份 …...

新闻月刊 | GBASE 4月市场动态一览

产品动态 4月,GBASE南大通用大规模分布式并行数据库GBase 8a MPP Cluster中标人保财险“2022年基础软件产品及服务采购”项目。这是自2019年GBASE与人保财险达成合作以来支持建设的第三期项目。项目上线后,将极大满足人保财险大数据中心及研发中心的增量…...

Java --- springboot2数据响应与内容协商

目录 一、数据响应与内容协商 1.1、响应json 1.1.1、返回值解析器 1.1.2、springMVC支持的返回值类型 1.1.3、HttpMessageConverter原理 1.2、内容协商 1.2.1、引入依赖 1.2.2、 postman分别测试返回json和xml 1.2.3、开启浏览器参数方式内容协商功能 1.3、自定义 Message…...

“中特估”乘风破浪!后续机遇在哪?

5月第一个交易日,“中特估”继续乘风破浪,A股银行板块集体大涨。 随着新一轮国企改革正在推进,中特估体系也在积极构建之中。在市场缺乏增量资金背景下,市场选股范式已经转向数字经济AI、央国企价值重估的两条主线,此…...

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令,生成公钥-私钥对。 $ ssh-keygen$ l…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...

高效的后台管理系统——可进行二次开发

随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录

#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...

【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战

🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...