news 2026/4/19 7:25:12

接口测试总结(http与rpc)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接口测试总结(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依赖(示例)

  1. <dependencies>

  2. <dependency>

  3. <groupId>com.test.service</groupId>

  4. <artifactId>base-service-test</artifactId>

  5. <version>0.0.1-SNAPSHOT</version>

  6. </dependency>

  7. <dependency>

  8. <groupId>org.springframework.boot</groupId>

  9. <artifactId>spring-boot-starter-actuator</artifactId>

  10. </dependency>

  11. <dependency>

  12. <groupId>jdk.tools</groupId>

  13. <artifactId>jdk.tools</artifactId>

  14. <version>1.8</version>

  15. <scope>system</scope>

  16. <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>

  17. </dependency>

  18. </dependencies>

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

  1. <!-- 引入资源配置 -->

  2. <import resource="spring-resource.xml"/>

  3. <!-- 具体的实现bean -->

  4. <bean id="demoServer" class="com.dub.provider.impl.DemoServerImpl" />

  5. <!-- 提供方应用信息 -->

  6. <dubbo:application name="xs_provider" />

  7. <!-- zookeeper服务器地址 -->

  8. <dubbo:registry address="zookeeper://localhost:2181" />

  9. <!-- 用dubbo协议暴露服务 -->

  10. <dubbo:protocol name="dubbo" port="20880" />

  11. <!-- 声明需要暴露的服务接口 -->

  12. <dubbo:service interface="com.dub.provider.DemoServer" ref="demoServer" />

  13. <!------------------------------------------------------------------------>

  14. <!-- 在工程resources下添加其资源配置文件-->

  15. <dubbo:application name="hjy_consumer" />

  16. <dubbo:reference interface="com.dub.provider.DemoServer" id="demoServer"

  17. url="dubbo://localhost:20880" timeout="10000" />

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

  1. @RunWith(SpringJUnit4ClassRunner.class)

  2. @ContextConfiguration(locations = {"classpath:/spring.xml"})

  3. @Configuration

  4. //++++++++++++继承方法++++++++++++

  5. public class BaseTestNGTest extends AbstractTestNGSpringContextTests {

  6. //++++++++++++数据收集++++++++++++

  7. @DataProvider(name = "testdata")

  8. public Object[][] dataprovide()throws IOException{

  9. System.out.println("dataprovide");

  10. // return new Object[][]{{2000020013,2},{2001000138,0},{2001000139,2}};

  11. Object[][] testData =ExcelHandle.readXlsx(excel, "sheet2");

  12. return testData;

  13. }

  14. //++++++++++++数据传递++++++++++++

  15. @Test(dataProvider="testdata")

  16. public void test_case_1(HashMap<String, String> map) throws Exception {

  17. operatorUserId=Integer.valueOf(map.get("userId"));

  18. exceptedvalue=Integer.valueOf(map.get("excepted"));

  19. //++++++++++++实际值++++++++++++

  20. Integer actual_value=billService.getUserEmailNameCount(operatorUserId);

  21. //++++++++++++预期值++++++++++++

  22. Integer excepted_value=get_excepted_value(operatorUserId);

  23. //+++++++++++++验证+++++++++++++

  24. Assert.assertEquals(actual_value,exceptedvalue);

  25. }

  26. }

四、接口测试用例设计

五、测试思路总结

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

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

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

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

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

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

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

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

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:51:14

AI智能实体侦测服务内存溢出?轻量级部署优化实战案例

AI智能实体侦测服务内存溢出&#xff1f;轻量级部署优化实战案例 1. 背景与问题提出 在自然语言处理&#xff08;NLP&#xff09;的实际落地场景中&#xff0c;命名实体识别&#xff08;Named Entity Recognition, NER&#xff09;是信息抽取、知识图谱构建和智能搜索等任务的…

作者头像 李华
网站建设 2026/4/18 2:04:31

网络安全面试宝典:从OWASP到内网渗透,小白到专家的进阶指南

【收藏必备】网络安全面试宝典&#xff1a;从OWASP到内网渗透&#xff0c;小白到专家的进阶指南 本文全面整理网络安全面试题&#xff0c;涵盖HVV、OWASP Top 10漏洞原理与修复方法。详细讲解内网渗透技术、权限维持方法、Windows/Linux系统提权技巧&#xff0c;以及渗透测试流…

作者头像 李华
网站建设 2026/4/19 7:24:15

RaNER模型置信度输出:AI智能侦测服务结果可信度评估

RaNER模型置信度输出&#xff1a;AI智能侦测服务结果可信度评估 1. 引言&#xff1a;AI 智能实体侦测服务的现实挑战 在信息爆炸的时代&#xff0c;非结构化文本数据&#xff08;如新闻、社交媒体、公文&#xff09;呈指数级增长。如何从中高效提取关键信息&#xff0c;成为自…

作者头像 李华
网站建设 2026/4/17 18:42:33

《心理学导论》学习笔记・我们如何理解世界 —— 知觉的建构之旅

《心理学导论》学习笔记・我们如何理解世界 —— 知觉的建构之旅一、核心定位&#xff1a;知觉 —— 从 “感受刺激” 到 “赋予意义”如果说感觉是感觉器官捕捉物理能量、转化为神经信号的 “原材料采集” 过程&#xff0c;那么知觉就是大脑对这些零碎、无意义的感觉信号进行组…

作者头像 李华
网站建设 2026/4/18 18:31:00

导师严选2026 AI论文工具TOP9:专科生毕业论文必备测评

导师严选2026 AI论文工具TOP9&#xff1a;专科生毕业论文必备测评 2026年AI论文工具测评&#xff1a;为专科生量身打造的高效写作指南 随着人工智能技术在学术领域的广泛应用&#xff0c;越来越多的专科生开始借助AI论文工具提升写作效率与论文质量。然而&#xff0c;面对市场上…

作者头像 李华