当前位置:网站首页>RobotFramework 之 数据驱动
RobotFramework 之 数据驱动
2022-08-09 13:06:00 【沉觞流年】
RobotFramework 之 数据驱动
RF数据驱动
用例逻辑相同,每次输入的数据不同,并且数据量很大的时候,这时候就要使用到数据驱动。
比如测试输入框的内容,页面上有很多输入框,在输入框中要输入很多次数据进行验证,负数、0、小数、整数、中文、英文、特殊字符及组合输入。
总不能说每个输入框、每次输入都写一个测试用例进行验证,通过复制粘贴去修改内容,多麻烦。这时候用上数据驱动,就会省事很多
在RF中,通过使用 [template]
用户关键字自发实现数据驱动
没有这种类型的例子进行很好的说明,依旧使用163邮箱登录进行举例验证
common.robot
*** Settings ***
Library SeleniumLibrary
*** Keywords ***
登录网易邮箱
[Arguments] ${
账号} ${
密码}
# 打开chrome浏览器访问163邮箱
open browser https://mail.163.com/ chrome
sleep 5
maximize browser window
# 切换到iframe
select frame xpath=//iframe[contains(@id,'iframe')]
# 用户名输入框中输入 用户名
sleep 2
input text xpath=//*[@name="email"] ${
账号}
sleep 2
# 密码输入框中输入 密码
input text xpath=//*[@name="password"] ${
密码}
sleep 2
# 点击登录按钮
click element xpath=//*[@id="dologin"]
sleep 10
关闭浏览器
close browser
[Template]
关键字后的内容是定义的用户关键字
,语法要求是后面接关键字
而此时用例的主体变成了要传递的参数的内容,对应的是${账号}
、${密码}
(编辑器会识别不了该语法,因为第一个参数不是关键字,会报红,但运行是不会报错的)
test.robot
*** Settings ***
Library SeleniumLibrary
Resource common.robot
*** Test Cases ***
网易邮箱
[Template] 登录网易邮箱
用户名1 密码1
用户名2 密码2
注意,此时用例主体就不能再有其他关键字内容了,因为都变成了默认对应的参数${账号}
、${密码}
,如果还有其他关键字内容,会被当成是对应的参数进行传递,或者参数不对应,产生报错
test.robot
*** Settings ***
Library SeleniumLibrary
Resource common.robot
*** Test Cases ***
网易邮箱
[Template] 登录网易邮箱
用户名1 密码1
用户名2 密码2
sleep 10
log 账号密码输入正确 登录成功
此时 sleep
和 log
都不被当成关键字了,而是当成是参数传递,因为 log
一行相当于有3个参数,所以会产生报错
RF中的数据驱动没有python中来的方便,RF中没有关键字去读取excel中的数据,如果要在RF中使用比较复杂的数据驱动功能,还是推荐写成python模块,然后再进行引用
边栏推荐
- jenkins api create custom pipeline
- 搭建大型分布式服务(二)搭建会员服务
- Professor Chen Qiang "application in machine learning and R" course chapter 17
- read stream special attention
- 群组行动控制--自动队列化实现策略
- npm install失败
- Deep Learning Based on R Language - Simple Regression Case
- 【NVIDIA】Tesla V100安装NVIDIA-Driver驱动程序适配CUDA-Toolkit-11.6
- Professor Chen Qiang the machine learning and R application course chapter 18 assignments
- Ledong Fire Rescue Brigade was invited to carry out fire safety training for cadres
猜你喜欢
随机推荐
IDEA Gradle 常遇问题(一)
Professor Chen Qiang's "Machine Learning and R Application" course Chapter 13 Assignment
昇腾AI开发者创享日南京站!一起CANN机器狗+AI机械臂实现硬核智慧救援!燃爆现场~
R 语言 2010.1至2021.12艾滋病每月发病人数 时间序列分析
JS轮播图实现
GIN file upload and return
gin的中间件和路由分组
ARM board adds routing function
uni-app - uview Swiper 轮播图组件点击跳转链接(点击后拿到 item 行数据, 取出数据做操作)
【瑞吉外卖】day05:增、删、改、查分类以及公共字段自动填充
The sword refers to the offer, cuts the rope 2
Explanation of RTSP protocol
面试攻略系列(三)-- 高级开发工程师面试问些啥?
WSA toolkit installed app store tip doesn't work how to solve?
万物皆可柯里化的 Ramda.js
Ledong Fire Rescue Brigade was invited to carry out fire safety training for cadres
2.微服务'黑话'集锦及Eureka注册中心相关概念
19、学习MySQL 索引
记录本项目中用到的系统调用与C库函数-2
FFmpeg多媒体文件处理(ffmpeg打印音视频Meta信息)