You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio:androidTest测试代码为何在手机而非电脑执行HTTP GET?

解决androidTest测试在设备运行而非本地执行的问题

原因

androidTest目录下的测试属于Instrumented插桩测试,这类测试的设计目标就是在真实Android设备或模拟器上运行,用来验证应用在Android环境中的实际行为。你的测试代码会被打包部署到连接的设备上执行,所以HTTP请求自然从手机端发起。

解决方案

方案1:移到本地单元测试目录(推荐)

Android Studio的src/test/java目录是本地单元测试的存放位置,这类测试直接在本地电脑的JVM上运行,不需要依赖Android设备,完全满足你本地执行HTTP请求的需求。

操作步骤:

  • 把你的HttpRequests测试类从src/androidTest/java对应的包路径,移动到src/test/java的同包路径下
  • 你的代码基于OkHttpClient实现,不依赖任何Android SDK类,无需修改代码
  • 重新运行测试,此时请求会直接在本地电脑执行

方案2:插桩测试中转发请求(仅特殊场景使用)

如果必须保留在androidTest目录(比如测试需要依赖Android环境的其他逻辑),可以通过adb reverse命令将设备的请求端口转发到本地,或者在本地启动代理服务,但这种方式步骤繁琐,非必要不推荐。

你的测试代码示例:

public class HttpRequests {
    @Test
    public void dropSession() throws IOException {
        String url = "url.url";

        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(url)
                .build();

        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) {
                throw new IOException("Unexpected response code: " + response);
            }

            String responseBody = response.body().string();

        }
    }
}

内容的提问来源于stack exchange,提问作者Lorso69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:59:10