一文详解!接口测试(http与rpc)总结

news/2025/3/19 23:54:45/

目录

前言:

 一、了解一下HTTP与RPC

二、HTTP接口测试

三、RPC接口测试

四、接口测试用例设计

五、测试思路总结


前言:

在接口测试方面,常见的接口类型有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地址中,故存在安全隐患。

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);}
}

四、接口测试用例设计

五、测试思路总结

  • 查看接口文档,了解接口功能及其业务逻辑;

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

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

  • 确定请求地址/调用方法;

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

  • 选用适用工具或编写脚本测试;

  • 检查返回码,及其描述;

  • 检查返回值,及其对应数据库数据变化。

  作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5F7http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=8sFvl1Yi2ruJa1cqaaz0car85omUNLpx&authKey=vjglrc9OroNe2M%2F%2FA%2F%2B4JnNVTWfVWIt99KcXwqz%2F7dqHPCpZh97ZgT%2FHePxtriAs&noverify=0&group_code=574737577

 

 


http://www.ppmy.cn/news/450894.html

相关文章

世嘉新人培训---第一章 游戏示例 推箱子游戏

跟着《游戏开发&#xff1a;世嘉新人培训教材》一书中推箱子游戏的逻辑写的推箱子游戏&#xff0c;整体代码不长&#xff0c;也没有特别难以理解的逻辑&#xff0c;后续看看自己能否进行一定的改进&#xff0c;增加游戏难度和代码的运行速度。 #include<iostream>//长 c…

r7 6800hs参数 锐龙r7 6800hs评测

R7 6800Hs 采用6纳米工艺 8 核 16 线程&#xff0c;主频 3.2GHz-4.7GHz&#xff0c;一级缓存 512KB二级缓存 4MB 三级缓存 16MB热设计功耗(TDP) 35W 内存参数&#xff0c;搭载了 DDR5 集成显卡AMD Radeon 680M r7 6800hs怎么样这些点很重要 http://www.adiannao.cn/dy

【Cocos游戏】《疾风勇者传》:内测7天强势突破100万用户

日式RPG中独有的东方式柔美&#xff0c;给人带来的心灵感动&#xff0c;相信年龄稍大的玩家们永远不会遗忘。而由触控科技带来的《疾风勇者传》正是一款有着怀旧风的日式动漫ARPG手游&#xff0c;凭借过硬质量和独特玩法已经成为了一匹强劲黑马。 自6月16日《疾风勇者传》安卓不…

头皮发麻之win10宽带拨号错误797

温馨提示&#xff1a; 本人耗费数小时&#xff0c;查阅资料无数&#xff0c;可惜都不能解决我这个问题&#xff0c;我无意间的一次尝试&#xff0c;让我重获新生&#xff0c;故此写此文章&#xff0c;希望能帮助到各位&#xff0c;注释&#xff1a;本人windows规格如下图&…

TA游戏推荐:精选iOS游戏大作 智器X7玩酷无压力

智器X7一样可以爽玩IOS平台大作 伴随着硬件性能的不断升级与系统的完善与优化&#xff0c;在高端机型上流畅运行大型游戏自然不在话下&#xff0c;iOS的经典游戏大作不再只是独角戏&#xff0c;搭载智卓系统的智器X7一样可以爽玩iOS大作。今天小编特地整理了一些智器X7酷…

1月29日服务器例行维护公告,《高能手办团》1月29日例行维护公告

各位亲爱的手办收藏家&#xff1a; 为了提升您在手办世界的游戏体验&#xff0c;《高能手办团》将于1月29日4:00进行例行维护。维护期间&#xff0c;收藏家们将无法进入原服务器进行游戏。维护结束后&#xff0c;我们将以邮件的方式向各位收藏家送上补偿奖励。维护期间请大家留…

Cocos精品 | 《猫和老鼠官方手游》带你重返童年6点钟!

网易游戏与华纳联手打造的童年跑酷大作《猫和老鼠官方手游》&#xff0c;已经与我们见面有一段时间了。这款官方正版游戏基于cocos引擎开发&#xff0c;上线仅24小时下载量即突破60万。在获得App Store“优秀新游戏”推荐后&#xff0c;更登顶iPad免费总榜第一&#xff0c;iPho…

《Sanmill 直棋游戏》创作之旅

前言 大家好&#xff0c;我是 Calcitem 方解石&#xff0c;一名程序员&#xff0c;开源业余爱好者。 Calcitem 后面多加了一个 m&#xff1f;是的&#xff0c;不是笔误哈&#xff0c;Calcite 这个单词很容易被先占&#xff0c;所以加了一个 m。 去年对自己而言是特殊的一年&am…