RF框架----基础
1.RF框架
全称robot framework,一个基于python开发的,自动化测试框架,这个框架可以做:web自动化,接口自动化,APP自动化。
github官网
1).安装python 检查python环境 python -V或 pip -V
2).安装rf(dos命令里面输入) pip install robotframework 安装图形界面库 pip install robotframework-ride
3).启动RF,安装完成后有图标直接双击运行,找到ride.py运行。
4).RF项目
项目文件夹(project )->测试集(test suite)->测试用例(test case)
5). RF功能详解
(1).设置区
Doucument | 添加用例说明 |
Suite Setup | 执行测试套件的前置操作,如初始化数据等 |
Suite TearDown | 执行测试套件结束后的操作,如恢复数据等 |
Setup | 执行测试用例得前置操作 |
Test TearDown | 执行用例结束后的操作 |
Force Tags | 用例标签,suite中的标签会给该测试套件下的所有Test case增加Force Tags |
Timeout | 设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。防止某些情况导致案例一直卡住不动,也不停止也不失败。 |
Template | 测试模板,可以指定某个关键字为这个测试套件下所有testcase的模板,这样所有的testcase就只需要设置这个关键字的传入参数即可。(TestCase中使用) |
Arguments | 传入参数(New User Keyword使用) |
Return Value | 返回值(New User Keyword使用) |
引用区:
Add Library | 加载测试库,主要是【python目录】site-packages里的测试库 |
Add Resource | 加载资源,主要是你工程相关的资源文件。 |
Add Variables | 加载变量文件 |
参数区:
Add Scalar | 定义变量 |
Add List | 定义列表型变量 |
Add Dict | 定义字典 |
数据区:
Add Metadata | 定义元数据。(作用是在report和log里面显示定义好的内容,格式和document一样) |
2、RF关键字驱动
1).什么是关键字? 有特殊含义的单词
2).什么是关键字驱动?关键字驱动脚本是比较复杂的数据驱动技术的逻辑扩展,封装了各种基本操作,每个操作由相应的函数实现,开发脚本时不需要关心这些基础函数,而是用一系列关键字指定执行的任务。
用一个关键字完成某一个功能,以期望解决我们的问题。
3)、RF基础数据类型
(1)、变量 是计算机语言中能存储计算结果或能表示抽象概念。变量可以通过变量名访问。
赋值 ${x1}=set variable 123 等价于 设x1=123。 运算: ${x1}=evaluate ${x1}+${x2}
应用:获取网页的文本,然后断言。
(2)、数组 是有序的元素序列。用于区分数组的各个元素的数字编号称为下标。下标是从0开始。
@{list}= create list 1 2 应用:调用接口传参数的时候,可以用数组。
(3)、字典 数据字典:可以根据键,得到值;也可以更新键的值。
&{map}=create dictionary aa=AA bb=BB $(map['aa"])
应用:Json格式解析之后就是字典。
4)、分支和循环
(1)、条件运算 数值比较:大于:${x}>${y} 等于:${x}==${y} 小于:${x}<${y}
字符串比较 等于:"aa"=="bb" 包含: should contain
(2)、选择结构 IF语句 Run keyword if 如果条件为True,则执行关键字。
IF...ElSE Run keyword if
ElSE IF
ElSE IF
5)、RF两种数据结构(需要使用到的库:Collections)
线性结构 数组 @{list}:1 2 3 4 5 添加元素: Append To List
键值对结构 字典 &{map}:a=A b=B c=C 添加键值对到字典:Set To Dictionary
6)、数据结构应用
for 循环 循环就是一直重复操作
:FOR ${i} IN 1 2 3 4 5
:FOR ${i} IN RANGE 1 5
Exit for loop
数据结构遍历
数组遍历 :FOR ${i} in @{list} 字典遍历: @{keys} = Get Dictionary Keys ${map} 然后遍历key
7)、字符串处理和异常
(1)、字符串的拼接
变量 #临时拼接: aaa ${x} bbb #变量拼接:${str3}= Catenate SEPARATOR= ${str1} ${str2}
(2)、字符串包含
判断s1里面包含s2 '${s1}'._contains_('${s2}')
RF常用类库
1.标准库:不需要安装,直接用,RF自带。
BUitini(测试库) Collections(集和库) Datatime(时间库) ScreenShot(截屏库)
标准库的位置:C://python373\lib\sit-pakage\robot\librarys
2、扩展库:需要安装后才能使用
Web自动化测试:SeleniumLibrary、Selenium2Library、Selenium2Library for java等
API接口自动化:RequestsLibrary
APP自动化测试:AppiumLibrary
扩展库的位置:C://python373\lib\sit-pakages
准备UI自动化测试环境
1:通过pip安装扩展库:pip install robotframework-seleniumlibrary
2:下载谷歌浏览器
3:下载谷歌浏览器驱动(注意:谷歌浏览器的驱动必须和谷歌浏览器兼容)把chromdedriver.exe放到python目录下。
4:在RF的测试套件里面导入SeleniumLibrary
元素定位
id 、name、link_test、partial_link_text、xpanth、css、class_name、tag_name
前提:元素必须唯一
xpath:
1.通过绝对路径定位:这种方式几乎不用
2.通过相对路径定位://form/span/input
3.通过元素属性定位://input[@autocomplete="off"] //input[@autocomplete="off" and @class="s_ipt"]
4.通过部分属性定位://input[starts-with(@autocomplete,"of")] //input[contains(@autocomplete,"of")]
5.通过文本定位://a[text()="新闻"]
css:
1.通过绝对路径定位:这种方式几乎不用
2.通过ID或者class定位:#ID .class
3.通过元素属性定位:input[autocomplete="off"] input[autocomplete="off" a][ class="s_ipt"]
4.通过部分属性定位:input[autocomplete^="of"]以...开始 input[autocomplete$="of"] 以....结束 input[autocomplete*="of"] 包含....
5.通过子元素定位:div#s-top-left a:nth-child(3)
项目的三层架构
1.三层架构指的是什么?
(1)页面元素层 (2)业务逻辑层(3)测试用例层 业务逻辑层调用页面元素层,测试用例层调用业务逻辑层
2、为什么需要分层,分层的意义在哪里?
实现页面元素,公共方法,公共数据,测试用例集中式管理。增加脚本的重复利用率,增加脚本的可维护性.
RF非GUI的方式(命令行)运行
pybot -d 测试报告的路径 测试用例的路径
Jenkins : Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
RF框架----基础相关推荐
- Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能 之前一直用的是自 ...
- python学习框架图-Python学习---Python的框架基础学习
框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...
- 《Android的设计与实现:卷I》——第2章 框架基础JNI
第2章 框架基础JNI JNI(Java Native Interface,Java本地接口)是Java平台上定义的一套标准的本地编程接口.JNI允许Java代码与本地代码互操作,即Java代码可以调 ...
- python前端学习-------Flask框架基础(建议收藏)
Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...
- data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解
本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...
- php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析
本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp ...
- 一.Spring框架基础
JAVAEE框架之Spring 一.Spring框架基础 Spring:春天:轻量级的企业级开发框架,核心是IOC(控制反转)和AOP(面向切面编程). 官网:spring.io Spring–> ...
- java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题
每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...
- (转)Hibernate框架基础——一对多关联关系映射
http://blog.csdn.net/yerenyuan_pku/article/details/52746413 上一篇文章Hibernate框架基础--映射集合属性详细讲解的是值类型的集合(即 ...
最新文章
- c语言子程序return,c语言return返回到哪
- 一位刚刚成功上岸的智能车队员对于参赛经历总结与对比赛的建议
- python文件排序
- STS Eclipse IDEA 指定启动JDK版本
- OpenGL球体的Phong渲染
- 谈VHDL/Verilog的可综合性以及对初学者的一些建议
- tf.app.flags和tf.app.run的使用
- 华为云专属月·行业深耕专项行动正式开启
- plupload 中文php,简单集成wangEditor plupload 到Tp3.2
- 纯CSS3动画按钮效果
- AJAX Accordion:可折叠面板的集合
- FPGA BCD计数器(一位)
- 精密电阻选购及换算方法
- 短信登录功能测试用例
- 樊登讲亲密关系_《亲密关系》
- xlsxwriter去掉网格线_python之xlsxwriter模块(可操作xls/xlsx格式文件)
- 怎样对系统进行优化?
- 一年级语文四季心田花开专项练习题
- 第四章(第二节)没有人,在年少时想成为一个普通人
- 游戏更新一直卡在计算机,win10电脑玩战地5游戏一直卡屏卡顿如何解决
热门文章
- Python脚本---在 MySQL数据库中跑批加载多个表的数据
- 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - RPG Maker MV 界面介绍
- 1205: 求一元二次方程的实数根(C)
- Java用正则表达式判断学号,利用正则表达式验证学号_利用正则表达式开发动态网页...
- 西瓜书课后题——第十一章(特征选择与稀疏学习)
- Mysql主键与事务
- 《信号与系统》笔记 第二章
- 运营一款电视盒子需要注意什么?
- Linux-小企鹅输入法的安装与使用
- 写字机上位机c语言,易懂 | 手把手教你编写你的第一个上位机