NXP产品应用

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

小编 2024-11-23 NXP产品应用 23 0

太全面了!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框架大全,一看就会,一学就懂

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

相关问答

项目结果单位参考值1类风湿因子(RF)3_千问健康

项目结果单位参考值1类风湿因子(RF)3,20IU/ml0-102抗链“,项目结果

tws蓝牙耳机rf测试方法和标准?

TWS耳机产线测试RF测试方法和标准如下:一:输出功率二:载波漂移三:单时隙灵敏度指标️初始载波容限,一般在40khz以内能正常连接通讯,频偏太大会导致搜到...

请问rf是什么意思?

[回答]表示R1和Rf并联后的电阻,相当于R'=R1*Rf/(R1+Rf)如果是3个电阻以上并联,就是R'=R1//R2//R3//...,用常规的数学公式就很复杂了表示R1和Rf并联后的...

蓝牙耳机CE认证RF认证需要做哪些测试?

满足的认证可能有...简便说基本有BQB认证,FCC认证,CE认证等,其中要挂蓝牙标志正规的都要过BQB,其余的认证主要是看你要销往哪里,不同地方需满足的认证可能有...

RF老出现错误怎么解决啊-宇宙中的小飘浮的回答-懂得

RF(RobotFramework)出现错误的解决方式取决于出现的错误类型和具体情况。以下是一些常见错误类型和解决方法:1.语法错误:在编写测试用例或关键字时...

射频工程师做的项目?

1、射频电路系统分析射频工程师需要对射频电路部分负责,需要对整个RF系统的电路进行系统分析,包括分配单元模块指标,规范EMC设计原则,提出附件功能与性能要...

如何评价俄罗斯的最新改进型图-22M3M“逆火”战略轰炸机?

“逆火”重装归来:俄罗斯将与美国实现力量平衡?图-22M3“逆火”战略轰炸机2018年12月28日,由俄罗斯联合航空制造集团(UAC)进行了符合21世纪作战要求升级改...

美军AIM-120系列外形没啥变,性能为啥就大幅度提高了?

AIM-120是通过内部升级以及改进算法、弹道的方式提升性能首先美国AIM-120导弹所采用的这种气动外形本身是最经典的对空导弹气动布局方式,这种布局叫做“双十字...

行业基准收益率是什么?

基准收益率(benchmarkyield),也称基准折现率是企业或行业或投资者以动态的观点所确定的、可接受的投资项目最低标准的受益水平。是投资决策者对项目资金时间...

mit设备是什么?

MIT计算机科学与人工智能实验室(ComputerScienceandArtificialIntelligenceLaboratory,简称CSAIL)之前曾有过类似的项目,新项目是以旧项目...

猜你喜欢