Web Service HTTP1.0 and HTTP1.1性能测试报告

第1章 测试需求分析

1.1 测试目的

web service 分别采用HTTP1.1HTTP1.0作为传输协议的性能差异。

1.2 测试准备

1. 操作域模拟器一套。

2. HTTP1.1HTTP1.0测试脚本各一套。

第2章 测试场景设计

2.1 Web Service采用HTTP 1.0测试

2.1.1 测试目的

监控使用HTTP1.0作为传输协议时, 操作域模拟器的TPS 响应时间。

2.1.2 测试步骤

LOADRUNNER并发用户数设定为20

2.1.3 测试结果输出

性能参数

最小值

平均值

最大值

TPS

107.538

285.307

311.563

响应时间 (s)

0.027

0.067

0.078


Web Service HTTP1.0 and HTTP1.1性能测试报告_第1张图片

  

2.1Web Service Http 1.0

红色:响应时间

蓝色:TPS

2.2 Web Service 采用 HTTP 1.1测试

2.2.1 测试目的

监控在使用HTTP1.1作为传输协议后,操作域模拟器的响应时间,TPS

2.2.2 测试步骤

LOADRUNNER并发用户数设定为20

2.2.3 测试结果输出

性能参数

最小值

平均值

最大值

TPS

95.25

404.722

451.875

响应时间 (s)

0.009

0.040

0.045


Web Service HTTP1.0 and HTTP1.1性能测试报告_第2张图片

  

2.2Web Service Http 1.1

红色:响应时间

蓝色:TPS

 

2.3 Web Service 采用 HTTP 1.1/HTTP 1.0混合测试

2.3.1 测试目的

监控在使用HTTP1.1作为传输协议后,操作域模拟器的响应时间,TPS

2.3.2 测试步骤

LOADRUNNER并发用户数设定为20

2.3.3 测试结果输出

性能参数

最小值

平均值

最大值

TPS

77.00

330.324

365.563

响应时间 (s)

0.010

0.045

0.055


Web Service HTTP1.0 and HTTP1.1性能测试报告_第3张图片

  

2.3Web Service Http 1.1/Http 1.0混合测试

红色:响应时间

蓝色:TPS

 

第3章 测试总结

Web Service 客户端如果采用HTTP1.1长连接作为连接方式,能明显减少创建SOCKET连接所需要的时间,显著提交了TPS和响应时间。

第4章 附录

4.1 AXIS客户端如何设置使用HTTP1.1

AXIS引擎通过使用CommonHTTPSender代替默认的HTTPSenderServiceLocator必须只实例化一次. 然后在所有stub中共用. 之所以如此是因为ServiceLocator管理着http connection的连接池, 它通过CommonsHTTPSender的引用管理着MultiThreadedHttpConnectionManager,实例程序代码片段请参照:

static {

private static SyncRoamingUser_ServiceLocator serviceLocator;

 

   EngineConfiguration defaultConfig = EngineConfigurationFactoryFinder

                     .newFactory().getClientEngineConfig();

 

    SimpleProvider config = new SimpleProvider(defaultConfig);

 

config.deployTransport(HTTPTransport.DEFAULT_TRANSPORT_NAME,

                            new CommonsHTTPSender());

 

serviceLocator = new SyncRoamingUser_ServiceLocator(config);//Only once.

} 

 

4.2 AXIS客户端如何配置HTTP连接池参数

AXIS引擎通过设置AxisProperties的属性,来定义HTTP连接池的参数。HTTP连接池可配置参数见如下程序代码和注释:

// "Total Connections" Pool size

AxisProperties.setProperty(

    DefaultCommonsHTTPClientProperties.MAXIMUM_TOTAL_CONNECTIONS_PROPERTY_KEY,

    maxTotalConnections);

 

// "Connections per host" pool size

AxisProperties.setProperty(

    DefaultCommonsHTTPClientProperties.MAXIMUM_CONNECTIONS_PER_HOST_PROPERTY_KEY,

    maxConnectionsPerHost);

 

// max duration to wait for a connection from the pool

AxisProperties.setProperty(

    DefaultCommonsHTTPClientProperties.CONNECTION_POOL_TIMEOUT_KEY, connectionPoolTimeout);

 

// Timeout to establish connection in millis

AxisProperties.setProperty(

    DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_CONNECTION_TIMEOUT_KEY, connectionTimeout);

 

// Timeout "waiting for data" (read timeout)

AxisProperties.setProperty(

    DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_SO_TIMEOUT_KEY, soTimeout);

 

你可能感兴趣的:(Web,socket,配置管理,脚本,loadrunner)