news 2026/2/4 15:56:20

接口测试中,请求超时该怎么办?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接口测试中,请求超时该怎么办?

A 发送请求,然后等待 B 的响应,同时开始超时计时,如果在超时时间内成功接收到响应,则结束等待和计时。如果到了超时时间还没有接收到响应,则结束等待同时此次通讯失败,这个过程叫做请求超时。在接口自动化测试过程中,也常常会碰到请求超时的场景。

如下图所示,测试用例 2 没有设置超时处理,遇到服务端阻塞,测试用例 2 一直处于等待的状态,后面的测试用例都不执行:

如下图所示,如果测试用例 2 设置了 3s 的超时时间,遇到服务端阻塞,测试用例 2 在 3s 之后则抛出异常,测试用例 3 正常执行:

实战练习

编写三条测试用例,在 test_two 测试用例中设置超时时间为 3 秒,超过 3s 还没有得到响应的话则抛出异常,然后正常执行后面的测试用例。

Python 版本

Python 可以在调用请求方法时传入 timeout 参数控制超时时间。

import requests class TestReq: def test_one(self): r = requests.post("https://httpbin.ceshiren.com/post") assert r.status_code == 200 def test_two(self): # 通过timeout 参数设置超时时间,设置超时时间为0.1s,模拟超时场景 r = requests.post("https://github.com/post", timeout=0.1) assert r.status_code == 200 def test_three(self): r = requests.post("https://httpbin.ceshiren.com/post") assert r.status_code == 200

JAVA版本

Java 需要通过添加 RestAssured 的配置信息来处理超时的请求。通过 setParam() 设置超时时间,第一个参数为连接的类型,第二个参数为超时的最大时长,单位是 3000 毫秒。

import io.restassured.RestAssured; import io.restassured.config.HttpClientConfig; import io.restassured.config.RestAssuredConfig; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; public class ReqTimeoutTest { @Test void timeout1(){ given(). when().get("https://httpbin.ceshiren.com/get").then().statusCode(200).log().all(); } @Test void timeout2(){ RestAssured.config=RestAssuredConfig.config().httpClient(HttpClientConfig.httpClientConfig(). setParam("http.connection.timeout",3000). setParam("http.socket.timeout",3000). setParam("http.connection-manager.timeout",3000)); given().when().get("https://github.com/").then().log().all(); } @Test void timeout3(){ given().when().get("https://httpbin.ceshiren.com/get").then().statusCode(200).log().all(); } }

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

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

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

springboot基于安卓的老年养护与智能服务系统

基于 SpringBoot 安卓的老年养护与智能服务系统介绍 随着人口老龄化加剧,传统老年养护模式(如子女照料、养老院集中看护)面临 “人力不足、响应滞后、个性化服务难实现” 等问题。基于SpringBoot(后端) 安卓&#xf…

作者头像 李华
网站建设 2026/2/2 23:57:33

EasyGBS助力智慧医院打造全方位视频监控联网服务体系

一、项目背景在数字化转型浪潮的推动下,医疗行业正朝着智能化、信息化的方向加速迈进。智慧医院作为医疗数字化的重要体现,旨在利用先进的信息技术提升医疗服务质量、优化医院管理效率,保障医院安全运营。然而,传统医院监控系统存…

作者头像 李华
网站建设 2026/1/26 4:39:16

Java多态——Java的三大特性之一,零基础小白到精通,收藏这篇就够了

文章目录 一、什么是多态二、重写 2.1、重写的规则 三、多态的实现条件四、向上转型五、向下转型六、动态绑定七、使用多态的优缺点 7.1、优点7.2、缺点 八、避免在构造方法中调用重写的方法 一、什么是多态 Java多态是面向对象编程的一个重要特性,它允许不同的对…

作者头像 李华
网站建设 2026/2/3 8:04:56

【Open-AutoGLM元宇宙适配终极指南】:揭秘三大核心技术突破与落地实践

第一章:Open-AutoGLM元宇宙适配的演进与愿景随着人工智能与虚拟空间的深度融合,Open-AutoGLM作为新一代语言模型,在元宇宙环境中的适配能力正经历深刻变革。其核心目标是实现自然语言理解与三维交互场景的无缝衔接,使AI代理能够在…

作者头像 李华
网站建设 2026/2/3 9:38:44

Open-AutoGLM如何实现自主学习?:深度剖析其进化机制与训练闭环设计

第一章:Open-AutoGLM自主学习的演进逻辑Open-AutoGLM作为新一代自主学习语言模型,其核心在于通过动态反馈机制实现知识迭代与推理优化。该系统摒弃了传统静态预训练范式,转而采用闭环式自我演化架构,持续从环境交互中提取语义模式…

作者头像 李华