news 2026/1/26 12:55:20

接口测试总结(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/1/24 22:35:45

AI智能实体侦测服务安全性配置:API访问控制实战教程

AI智能实体侦测服务安全性配置&#xff1a;API访问控制实战教程 1. 引言 1.1 业务场景描述 随着AI模型在企业级应用中的广泛部署&#xff0c;API接口的安全性已成为不可忽视的关键问题。以“AI智能实体侦测服务”为例&#xff0c;该服务基于RaNER模型提供高性能中文命名实体…

作者头像 李华
网站建设 2026/1/10 14:27:08

常见的8个Jmeter压测问题,你知道吗?

为什么在JMeter中执行压力测试时&#xff0c;出现连接异常或连接重置错误&#xff1f; 答案&#xff1a;连接异常或连接重置错误通常是由于服务器在处理请求时出现问题引起的。这可能是由于服务器过载、网络故障或配置错误等原因导致的。 解决方法&#xff1a; 确定服务器的…

作者头像 李华
网站建设 2026/1/19 10:32:34

政府公文信息抽取:AI智能实体侦测服务格式兼容性处理教程

政府公文信息抽取&#xff1a;AI智能实体侦测服务格式兼容性处理教程 1. 引言 1.1 业务场景描述 在政府机关、行政单位和公共事务管理中&#xff0c;每日需处理大量非结构化文本数据&#xff0c;如政策文件、会议纪要、通报材料等。这些文档包含大量关键信息实体——人名、地…

作者头像 李华
网站建设 2026/1/15 13:38:33

AI智能实体侦测服务自动重试机制:稳定性增强部署教程

AI智能实体侦测服务自动重试机制&#xff1a;稳定性增强部署教程 1. 引言 1.1 业务场景描述 在实际生产环境中&#xff0c;AI 智能实体侦测服务&#xff08;NER&#xff09;常用于新闻内容分析、舆情监控、知识图谱构建等关键场景。这类系统对服务稳定性与容错能力要求极高—…

作者头像 李华