NXP芯片

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

小编 2024-11-24 NXP芯片 23 0

七年老测试整理的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).设置区

引用区:

参数区:

数据区:

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

太全面了!RF接口自动化框架项目实战

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试

以码同学VIP课程中的微服务项目进行接口自动化实战

01

搭建项目结构

创建一个项目,名字自己起,课上叫微服务项目接口测试框架,初始项目结构如下,不要着急对着图去创建,看下方解释再创建

配置: 这是一个目录,用来存放公共信息的

公共配置 :这是一个Resource,创建是右键配置New Resource

接口层: 这是一个目录,用来管理和定义接口基本信息

按照项目业务进行分类管理

买家api :这是一个Resource,创建是右键接口层New Resource卖家api :这是一个Resource,创建是右键接口层New Resource管理员api :这是一个Resource,创建是右键接口层New Resource基础服务api :这是一个Resource,创建是右键接口层New Resource接口默认参数 :这是一个目录,当接口参数比较多时,用来存储默认参数的,存到文件里, 方便管理业务关键字 :这是一个Resource,用来封装一些自定义的业务关键字,创建是右键接口层 New Resource

测试用例层: 这是一个目录,用来管理所有测试用例

测试数据层: 这是一个目录,管理测试数据的,测试数据存在文件

02

公共配置

根据项目情况,添加公共配置变量,各个服务的域名,数据库信息,redis信息,买家/卖家/管理员账号,并且导入需要的第三方库RequestsLibrary

03

接口层各接口定义

首先在各个api分类中导入,注意是每个

01

买家api编写

每个接口定义都是一个用户关键字,右键选择New User Keyword

1、买家登录接口

2、添加购物车接口

3、清空购物车接口

4、立即购买接口

5、设置收货地址接口

6、设置支付类型接口

7、创建交易接口

8、确认收货接口

9、评论接口

评论接口的参数是json串,参数较多,不方便一个个传递,所以将其作为整体传递

设计思路:

在[接口默认参数]目录中创建一个 评论.json文件,内容写所有参数的默认值,其中写xxxx代表这个是动态数据,必须每次都由调用方传递 关键字入参的含义: ${order_sn}、${sku_id}都是必传参数,${other}给了一个默认值,表示可以不传,如果用户需要针对json参数里除了order_sn和sku_id的参数进行测试时就要以${other}代表,${other}的传递规则是字符串形式的json格式字符串,key必须是jsonpath表 达式,value是要替换的新值例如: 针对替换json串中的特定字段封装一个自定义关键字 ,在业务关键字.robot下创建一个用户自定义关键字如下,业务关键字需要导入JSONLibrary 脚本解释: 第一行:读取 [接口默认参数] 目录下的评论.json文件,得到默认json参数 第二/三行:把用户传入的order_sn和sku_id更新到${comment_info}中去 第四行:判断${other}不等于default,说明用户传了其他数据,那么${other}转换成json第五行:判断${other不等于default},调用[替换json数据]关键字替换并且返回数据

02

卖家api编写

每个接口定义都是一个用户关键字,右键选择New User Keyword

1、卖家登录接口

2、创建商品接口

创建商品的参数是json串,参数较多,不方便一个个传递,所以将其作为整体传递

设计思路: 由于创建商品的接口参数里从业务上来说,没有不可重复的参数或者动态参数,所以我们将其整体作为参数传递

在[接口默认参数]目录中创建一个 创建商品.json文件,内容写所有参数的默认值 关键字入参的含义: ${new_params}给了一个默认值,表示可以不传,不传时接口使用默认参数发起请求,如果用户需要针对默认json参数里的某些字段进行修改,${new_params}的传递规则是字符串形式的json格式字符串,key必须是jsonpath表达式,value是要替换的新值例如 脚本解释 第一行:读取默认参数第二行:判断有${new_params}不等于default,说明用户传了其他数据第三行:判断有${new_params}不等于default,调用[替换json数据]关键字替换并返回

3、确认发货接口

4、确认收款接口

5、获取商品sku信息接口

03

管理员api编写

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

管理员登录接口

审核商品接口

04

各个登录关键字封装

由于各个服务在测试时都必须先完成登录获取token,所以我们将各个服务的登录做成关键字 在业务关键字.robot下进行依次创建和封装

导入需要的

创建买家session和提取token 关键字

创建卖家session和提起token 关键字

创建管理员session和提取token 关键字

04

测试用例脚本设计和编写

01

添加购物车接口测试

1、数据设计

采用数据驱动的方式来做,首先设计添加购物车测试用例数据文件,在测试数据层目录下创建一个买家接口测试数据.xlsx文件,sheet工作表名称添加购物车

数据如下:

2、数据驱动用例编写

创建买家接口目录

在测试用例层,创建买家接口目录

创建添加购物车测试集合

在买家接口目录下创建添加购物车测试集合,按照下图填写以及导入相关库

创建添加购物车接口模板

在添加购物车测试集合下创建一个用户关键字

创建测试用例

在添加购物车测试集合下创建一个测试用例

尝试执行

02

立即购买接口测试

1、数据设计

采用数据驱动的方式来做,首先设计立即购买测试用例数据文件,在测试数据层目录下的买家接口测试数据.xlsx文件,sheet工作表名称立即购买

数据如下:

2、数据驱动用例编写

创建立即购买测试集合

在买家接口目录下创建立即购买测试集合,按照下图填写以及导入相关库

创建立即购买接口模板

在立即购买测试集合下创建一个用户关键字

创建测试用例

在立即购买测试集合下创建一个测试用例

尝试执行

03

创建交易测试

1、数据设计

采用数据驱动的方式来做,首先设计创建交易测试用例数据文件,在测试数据层目录下的买家接口测试数据.xlsx文件,sheet工作表名称创建交易

数据如下:

2、数据驱动用例编写

创建测试集合

在买家接口目录下创建创建交易测试集合,按照下图填写以及导入相关库

创建交易接口模板

在创建交易测试集合下创建一个用户关键字

创建测试用例

在创建交易测试集合下创建一个测试用例

尝试执行

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关问答

rf软件是什么?

RF是基于python的自动化测试框架,是关键字驱动。和pytest功能类似,但语法不同,RF不需要写python代码,pytest需要。RF优点:自带测试报告功能,无需安装插件...

itrf框架是什么?

ITRF坐标框架是一个地心参考框架。它是由空间大地测量观测站的坐标和运动速度来定义的,是国际地球自转服务ERS的地面参考框架。由于章动、极移影响,国际协定...

itrf97框架是什么?

ITRF坐标框架是一个地心参考框架。它是由空间大地测量观测站的坐标和运动速度来定义的,是国际地球自转服务ERS的地面参考框架。由于章动、极移影响,国际协定...

未来佳能rf卡口会不会有一支高素质、高性价比、体积小型化的50mmf/1.4标头呢?

理论讲,这是一定的!微单是未来的趋势,RF自然也是未来的镜头趋势!去年九月,佳能发布EOSR同期发了一支RF351.8macrostmIS镜头售价亲民!算是高性价比...理...

北斗2000坐标参数?

2000国家大地坐标系以ITRF97参考框架为基准,参考框架历元为2000.0。CGCS2000坐标系原点和轴定义如下:原点为地球的质量中心;Z轴指向IERS参考极方向...

cgcs2000特点?

2000(中国)国家大地坐标系以ITRF97参考框架为基准,参考框架历元为2000.0。2000国家大地坐标系的大地测量基本常数分别为:长半轴a=6378137m;地球...

cgcs2000坐标经纬度是什么?

是我国当前最新的国家大地坐标系,英文名称为ChinaGeodeticCoordinateSystem2000,英文缩写为CGCS2000。CGCS2000是2000国家大地坐标系,属于地心大地...

华为5G技术与SpaceX公司的星链技术比,孰优孰劣?

5G技术和星链计划还是有比较大的差异的,它们是现有条件下针对不同人口密度地区的一对很好的补充产品,就算中国5G技术基本普及,都还是需要有近似于星链计划这么...

集装箱各种箱型缩写的问题?

RC是不是想说RF啊,冷柜REEFERdg是危险品DANGEROUSFR是框架箱FLATRACKOT是开顶柜OPENTOPRC是不是想说RF啊,冷柜REEFERdg...

集装箱45gp是什么柜子

GP代表的是普通的标准尺寸的集装箱,FR代表的是框架集装箱,也叫“平板柜”,通常是装大型设备用的。集装箱一般可以分为以下类型:普通箱20GP普通箱40GP...

猜你喜欢