接口测试总结分享(http与rpc)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

一、了解一下HTTP与RPC
1. HTTP(HyperText Transfer Protocol) 

说明:超文本传输协议,是互联网上应用最为广泛的一种网络协议。

优点:就是简单、直接、开发方便,利用现成的http协议进行传输。

流程图:

 

2. RPC(Remote Procedure Call)

说明:远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

优点:提升系统可扩展性,传输效率更快,安全性更高。

流程图:

 

二、HTTP接口测试
常见请求类型: post(增)、get(查)、put(改)、delete(删)等。
1)get型接口

格式: 请求数参数写在网址后面,用"?"连接,多个参数之间用"&"连接。如:https://api.douban.com/v2/book/search?q='',这是一个豆瓣查询图书信息的开发api,q='',单引号里就是查询的参数,

如查询《小王子》这本书的信息,则q='小王子',使用postman工具来试验一下,如下图:

场景: get型接口用于获取信息,多用于查询数据,如列表查询功能,点击查询按钮就调用一个get接口,然后把信息返回出来。

特点: 请求数据量小,参数暴露于url地址中,故存在安全隐患。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:632880530

 

2)post型接口

说明: 向指定资源位置提交数据(如提交表单、上传文件)来进行请求,post请求可能会导致新资源的建立

场景: 如注册、上传、发帖等功能,如用户在豆瓣网站对某本书进行收藏、写笔记、发表评论

特点: 请求数据量大,安全性高

如豆瓣的发表评论的开放api,见下图:

3)put型接口

    说明:  put请求用于向指定资源位置上传最新内容

    场景:  如用户在豆瓣网站修改对某本书的收藏、修改某篇笔记或修改评论

    如豆瓣的修改评论的开放api,见下图:

4)delete型接口

    说明: 请求服务器删除请求里url所标识的资源

    场景: 如用户在豆瓣网站取消对某本书的收藏、删除某篇笔记或删除评论

    如豆瓣的删除评论的开放api,见下图:

    

三、RPC接口测试
1)RPC接口其应用框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等,这次我们主要介绍一下Dubbo框架。

Dubbo是一个高性能、轻量级的RPC框架。主要提供三个关键功能,包括基于接口的远程调用、容错和负载平衡、以及自动服务注册和发现。

2)流程图:

 

3)测试环境搭建:

a.  pom.xml引入相关service应用jar依赖(示例:)

   <dependencies><dependency><groupId>com.test.service</groupId><artifactId>base-service-test</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency>  <groupId>jdk.tools</groupId>  <artifactId>jdk.tools</artifactId>  <version>1.8</version>  <scope>system</scope>  <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>  </dependency></dependencies>

b.  dubbo服务spring配置(示例:)

<!-- 引入资源配置 -->
<import resource="spring-resource.xml"/>
<!-- 具体的实现bean -->
<bean id="demoServer" class="com.dub.provider.impl.DemoServerImpl" />
<!-- 提供方应用信息 -->
<dubbo:application name="xs_provider" />
<!-- zookeeper服务器地址 -->
<dubbo:registry address="zookeeper://localhost:2181" />
<!-- 用dubbo协议暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.dub.provider.DemoServer" ref="demoServer" />
<!------------------------------------------------------------------------>
<!-- 在工程resources下添加其资源配置文件-->
<dubbo:application name="hjy_consumer" /><dubbo:reference interface="com.dub.provider.DemoServer" id="demoServer"url="dubbo://localhost:20880" timeout="10000" />

 c.  基于TESTNG数据驱动编写方法(示例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring.xml"})
@Configuration//++++++++++++继承方法++++++++++++
public class BaseTestNGTest extends AbstractTestNGSpringContextTests {//++++++++++++数据收集++++++++++++@DataProvider(name = "testdata")public Object[][] dataprovide()throws IOException{System.out.println("dataprovide");// return new Object[][]{{2000020013,2},{2001000138,0},{2001000139,2}};Object[][] testData =ExcelHandle.readXlsx(excel, "sheet2");return testData;}//++++++++++++数据传递++++++++++++@Test(dataProvider="testdata")public void test_case_1(HashMap<String, String> map) throws Exception {operatorUserId=Integer.valueOf(map.get("userId"));exceptedvalue=Integer.valueOf(map.get("excepted"));//++++++++++++实际值++++++++++++Integer actual_value=billService.getUserEmailNameCount(operatorUserId);//++++++++++++预期值++++++++++++Integer excepted_value=get_excepted_value(operatorUserId);//+++++++++++++验证+++++++++++++Assert.assertEquals(actual_value,exceptedvalue);}
}

四、接口测试用例设计

五、测试思路总结
  1)查看接口文档,了解接口功能及其业务逻辑

  2)确定接口调用协议(http、rpc等)

  3)确定请求类型(post、get等)

  4)确定请求地址/调用方法

  5)组装请求报文 ☆☆☆☆☆(参考测试设计)

  6)选用适用工具或编写脚本测试

  7)检查返回码,及其描述

  8)检查返回值,及其对应数据库数据变化

下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

 

 

 资料获取方式 :

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

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

相关文章

【python】输出高亮信息的内容

背景 日志是定位问题和数据分析的关键手段之一&#xff0c;尤其是在调试阶段&#xff0c;高效的、具有辨识度的日志可以非常快速准确的进行问题定位。shell中的echo命令自带文本格式化输出的功能&#xff0c;我们先来回顾下基本的语法&#xff0c;然后套用到python中即可。 s…

Docker安装及Docker构建简易版Hadoop生态

一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统&#xff1a;首先打开终端&#xff0c;更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker&#xff1a;使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…

pytestx容器化执行引擎

系统架构 前端、后端、pytest均以Docker容器运行服务&#xff0c;单独的容器化执行引擎&#xff0c;项目环境隔离&#xff0c;即用即取&#xff0c;用完即齐&#xff0c;简单&#xff0c;高效。 前端容器&#xff1a;页面交互&#xff0c;请求后端&#xff0c;展示HTML报告 后…

华为云渲染实践

// 编者按&#xff1a;云计算与网络基础设施发展为云端渲染提供了更好的发展机会&#xff0c;华为云随之长期在自研图形渲染引擎、工业领域渲染和AI加速渲染三大方向进行云渲染方面的探索与研究。本次LiveVideoStackCon 2023上海站邀请了来自华为云的陈普&#xff0c;为大家分…

【ag-grid-vue】column

网格中的每一列都使用列定义(ColDef)来定义。列根据在网格选项中指定的列定义的顺序在网格中定位。 列定义 下面的例子展示了一个定义了3列的简单网格: <template><ag-grid-vuestyle"height: 300px; width: 1000px"class"ag-theme-balham":colum…

自动化的驱动力,工控机助您实现智能生产!

“智能工厂建设如火如荼&#xff0c;部分成果已经落地&#xff0c;在大规模资金投入的市场催化下&#xff0c;海尔、海信等制造企业通过智能工厂手段推进生产效率成倍增长的新闻层出不穷。在工业4.0时代&#xff0c;“中国制造2025”战略中&#xff0c;智能工厂构建都是其中不可…

【KMP算法-代码随想录】

目录 1.什么是KMP2.什么是next数组3.什么是前缀表&#xff08;1&#xff09;前后缀含义&#xff08;2&#xff09;最长公共前后缀&#xff08;3&#xff09;前缀表的必要性 4.计算前缀表5.前缀表与next数组&#xff08;1&#xff09;使用next数组来匹配 6.构造next数组&#xf…

1.linux的常用命令

目录 一、Linux入门 二、Linux文件系统目录 三、Linux的vi和vim的使用 四、Linux的关机、重启、注销 四、Linux的用户管理 五、Linux的运行级别 六、Linux的文件目录指令 七、Linux的时间日期指令 八、Linux的压缩和解压类指令 九、Linux的搜索查找指令 ​​​​​​…

windows可视化界面管理服务器上的env文件

需求&#xff1a;在 Windows 环境中通过可视化界面编辑位于 Linux 主机上的 env 文件的情况&#xff0c;我现在环境是windows环境&#xff0c;我的env文件在linux的192.168.20.124上&#xff0c;用户是op&#xff0c;密码是op&#xff0c;文件绝对路径是/home/op/compose/env …

无涯教程-PHP - 性能优化

根据Zend小组的说明,以下插图显示了PHP 7与PHP 5.6和基于流行的基于PHP的应用程序上的HHVM 3.7。 Magento 1.9 与执行Magento事务的PHP 5.6相比&#xff0c;PHP 7的运行速度证明是其两倍。 Drupal 7 在执行Drupal事务时&#xff0c;与PHP 5.6相比&#xff0c;PHP 7的运行速度…

SQL 大小敏感问题

在SQL中&#xff0c;关键字和函数名 是不区分 大小写的 比如&#xff08;select、where、order by 、group by update 等关键字&#xff09;&#xff0c;以及函数(ABS、MOD、round、min等) window系统默认是大小写不敏感 &#xff08;ZEN文件和zen 文件 不能同时存在&#xff…

【vue3+ts项目】配置husky+配置commitlint

上一篇文章中配置了eslint校验代码工具 【vue3ts项目】配置eslint校验代码工具&#xff0c;eslintprettierstylelint 1、配置husky 每次手动执行命令才能格式化代码&#xff0c;如果有人没有格式化就提交到远程仓库&#xff0c;这个规范就起不到作用了&#xff0c;所有需要强…

Arcgis colorRmap

arcgis中colorRmap对应的名称&#xff1a; 信息来源&#xff1a;https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm 在arcpy中使用方法&#xff1a; import arcpy cr arcpy.mp.ColorRamp("Yellow to Red")python中 ma…

wqs二分

前提&#xff1a;答案满足凸性 题目类似为 n n n 个里面选 m m m 个求某种代价&#xff0c;暴力二维dp复杂度大&#xff0c;但容易计算不限制选的次数。 由于不限制选的次数&#xff0c;所以给选一个东西给一个代价 v v v&#xff0c;然后判断最后选了多少个&#xff0c;再…

Docker(md版)

Docker 一、Docker二、更换apt源三、docker搭建四、停启管理五、配置加速器5.1、方法一5.2、方法二 六、使用docker运行漏洞靶场1、拉取tomcat8镜像2、拉取成功3、开启服务4、查看kali的IP地址5、访问靶场6、关闭漏洞靶场 七、vulapps靶场搭建 一、Docker Docker是一个开源的应…

2023国赛数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…

python网络编程

文章目录 socket套接字客户端/服务模型linux文件描述符fdLinux网络IO模型详解网络服务器Apache VS Nginx生产者消费者-生成器版客户端/服务端-多线程版IO多路复用TCPServer模型异步IO多路复用TCPServer模型 socket套接字 套接字&#xff08;socket&#xff09;是抽象概念,表示T…

c++ qt--事件(第六部分)

c qt–事件&#xff08;第六部分&#xff09; 一.编辑伙伴&#xff0c;编辑顺序&#xff08;按TAB进行切换&#xff09; 1.编辑伙伴 此功能在设计界面如下的位置 1.设置伙伴关系 鼠标左键长按一个Label组件然后把鼠标移到另一个组件上 2.伙伴关系的作用 伙伴关系的作用就是…

HoudiniVex笔记_P26_RecursionBasics递归基础

原视频&#xff1a;https://www.youtube.com/playlist?listPLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI Bili&#xff1a;Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili Houdini版本&#xff1a;19.5 1、概述 递归是一种直接或者间接地调用自身的算法&a…

猜数游戏-Rust版

cargo new guessing_game 创建项目 输入任意内容&#xff0c;并打印出来 main.rs: use std::io; // 像String这些类型都在预先导入的prelude里&#xff0c;如果要使用的不在prelude里&#xff0c;则需要显式导入fn main() { println!("猜数"); println!("…