七年老测试整理的RF框架大全,一看就会,一学就懂

news2024/11/25 2:26:24

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).设置区

引用区:

参数区:

数据区:

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=B B $(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开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

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

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

相关文章

【linux基础】bash脚本的学习:定义变量及引用变量、统计目标目录下所有文件行数、列数

假设目的&#xff1a;统计并输出指定文件夹下所有文件行数 单个文件可以用 wc -l &#xff1b;多个文件&#xff0c;可以用通配符 / 借助bash脚本 1.定义变量名&#xff0c;使用引号 a"bestqc.com.map" b"Anno.variant_function" c"enrichment/GOe…

UE4_导入内容_Alembic文件导入器

Alembic文件导入器 Alembic文件格式(.abc)是一个开放的计算机图形交换框架&#xff0c;它将复杂的动画化场景浓缩成一组非过程式的、与应用程序无关的烘焙几何结果。虚幻引擎4(UE4)允许你通过 Alembic导入器 导入你的Alembic文件&#xff0c;这让你可以在外部自由地创建复杂的…

android支付宝接入流程

接入前准备 接入APP支付能力前&#xff0c;开发者需要完成以下前置步骤。 本文档展示了如何从零开始&#xff0c;使用支付宝开放平台服务端 SDK 快速接入App支付产品&#xff0c;完成与支付宝对接的部分。 第一步&#xff1a;创建应用并获取APPID 要在您的应用中接入支付宝…

Hot100【十一】:编辑距离

// 定义dp[i][j]: 表示word1前i个字符转换到word2前j个字符最小操作数 // 初始化dp[m1][n1] class Solution {public int minDistance(String word1, String word2) {int m word1.length();int n word2.length();// 1. dp数组int[][] dp new int[m 1][n 1];// 2. dp数组初…

代码算法训练营day14 | 理论基础、递归遍历

day14&#xff1a; 理论基础二叉树的分类&#xff1a;二叉树的种类&#xff1a;满二叉树完全二叉树二叉搜索树平衡二叉搜索树 二叉树的存储方式&#xff1a;链式存储顺序存储 二叉树的遍历方式&#xff1a;深度优先和广度优先遍历实现方式 二叉树的定义&#xff1a; 递归遍历递…

【攻防世界】web2(逆向解密)

进入题目环境&#xff0c;查看页面信息&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;…

磁盘管理与文件管理

文章目录 一、磁盘结构二、MBR与磁盘分区分区的优势与缺点分区的方式文件系统分区工具挂载与解挂载 一、磁盘结构 1.硬盘结构 硬盘分类&#xff1a; 1.机械硬盘&#xff1a;靠磁头转动找数据 慢 便宜 2.固态硬盘&#xff1a;靠芯片去找数据 快 贵 硬盘的数据结构&#xff1a;…

重温OKHTTP源码

本文基于OkHttp4.12.0源码分析 官方地址 概括 本篇主要是对okhttp开源库的一个详细解析&#xff0c;包含详细的请求流程分析、各大拦截器的解读等。 使用方法 同步请求&#xff1a;创建一个OKHttpClient对象&#xff0c;一个Request对象&#xff0c;然后利用它们创建一个Ca…

动态代理

动态代理 动态代理和静态代理角色一致。 代理类是动态生成的&#xff0c;不是我们直接写好的。 动态代理分为俩大类&#xff1a;基于接口的动态代理、基于类的动态代理 基于接口&#xff1a;JDK动态代理&#xff08;以下示例就是这个&#xff09; 基于类&#xff1a;cglib jav…

微机原理——绪论

本篇文章是我在观看网课时记录的笔记。如有错误欢迎批评指正。 微机原理————绪论 我们在使用计算机时&#xff0c;最重要最核心的就是计算机的CPU(中央处理器)&#xff0c;决定了计算机的计算速度&#xff0c;但是CPU无法直接读取外界的温度、湿度、压力之类的物理量&…

MSTP/RSTP的保护功能

目录 原理概述 实验目的 实验内容 实验拓扑 1.配置RSTP/MSTP 2.配置BPDU保护 3.配置根保护 4.配置环路保护 5.配置TC-BPDU保护 原理概述 在RSTP或MSTP交换网络中&#xff0c;为了防止恶意攻击或临时环路的产生&#xff0c;可配置保护功能来增强网络的健壮性和安全性。…

VSCode配置AI自动补全插件Tabnine

面向软件开发人员的 AI 助手 使用 AI 代码完成更快地编写代码 什么是Tabnine Tabnine 是一款 AI 代码助手&#xff0c;可让您成为更好的开发人员。Tabnine 将通过所有最流行的编码语言和 IDE 的实时代码完成、聊天和代码生成来提高您的开发速度。 无论您将其称为 IntelliSens…

【网络捉鬼记】微信可以部分网页可以,其它网页打不开提示无法找到NDS地址

蹭网蹭得好好的&#xff0c;为啥突然这样呢&#xff1f; 发现微信可以&#xff0c;百度搜索网页可以打开但图片出不来&#xff0c;再点一个新闻进去又是上图的样子。 问AI&#xff01;却发现连质谱清言也打不开&#xff01;用自己热点问&#xff1a; 至于win10怎么更换DNS&…

免费幻兽帕鲁游戏云服务器领取及搭建教程

幻兽帕鲁是一款多人在线游戏&#xff0c;为了获得更好的游戏体验&#xff0c;许多玩家会选择自行搭建游戏联机服务器&#xff0c;但是游戏云服务器一般配置较高&#xff0c;价格自然也比较高&#xff0c;本文将为大家分享免费幻兽帕鲁游戏云服务器领取及搭建教程。 雨云是一家国…

16.事件标志组

一、简介 事件标志组与信号量一样属于任务间同步的机制&#xff0c;但是信号量一般用于任务间的单事件同 步&#xff0c;对于任务间的多事件同步&#xff0c;仅使用信号量就显得力不从心了。FreeRTOS 提供的事件标志组 可以很好的处理多事件情况下的任务同步。 1. 事件标志 …

C语言文件操作2

1.二进制读写函数 在上一章我们介绍了字符读写函数、文本读写函数和格式化输入输出函数&#xff0c;这张我们继续为大家介绍剩下的一组读写函数——二进制读写函数&#xff1a;fread函数和fwrite函数。 ⚀fread函数 &#x1f7e1;函数作用 以二进制的方式从指定流中读取数据 …

Nuxt3 实战 (三):使用 release-it 自动管理版本号和生成 CHANGELOG

release-it 能做什么&#xff1f; 增加版本号并提交 Git生成变更日志&#xff08;Changelog&#xff09;并提交到 Git创建 Git 标签并推送到远程仓库发布到 npm 等软件仓库在 GitHub、GitLab 等平台创建发行版 前置知识 在看这篇文章之前&#xff0c;我们有必要了解一下 Sem…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能接…

SpringBoot整合RabbitMQ-应答模式

一、应答模式 RabbitMQ 中的消息应答模式主要包括两种&#xff1a;自动应答&#xff08;Automatic Acknowledgement&#xff09;和手动应答&#xff08;Manual Acknowledgement&#xff09;。&#xff08;一般交换机发送消息&#xff0c;RabbitMQ只有在接收到消费者的确认后才…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性。 当前&#xff0c;ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义了声明式UI描述、自…