使用mockwebserver对http与https进行网络测试

在对Android项目进行网络测试时,特别是当与服务器有交互时,使用真实服务环境进行测试是非常不可取的,因为网络环境无法控制,容易导致用例失败。此时有测试者会自己搭建测试服务器(常用tomcat或nodejs,在此就不细说)的方式,这种方法要优于使用真实环境进行测试,但是测试用例的覆盖度还是不够广,比如无法模拟网络连接错误,超时等。

在这次项目的测试中我才中了mockwebserver包进行网络测试,关于该包的详细资料见 https://github.com/square/okhttp/tree/master/mockwebserver

官方文档中对http的使用方式给出了详细的说明,在此只记录https的使用方式:

MockWebServer serverhttps = new MockWebServer();
serverhttps.useHttps(SslContextBuilder.localhost().getSocketFactory(), false);
// Schedule some responses.
serverhttps.enqueue(new MockResponse()
        .setResponseCode(200)
        .addHeader("Content-Type", "application/json;charset=UTF-8")
        .setBody("bodystring"));
// Start the server.
serverhttps.start();
注意在使用此包时需要对bcprov-jdk15on-154.jar包进行配置,网上搜一下有很多配置方法

你可能感兴趣的:(使用mockwebserver对http与https进行网络测试)