技术开发 频道

WebService性能测试研究

  【IT168 技术文档】

  1 概述

  在某项目中,遇到手机客户端与服务器端交互的性能测试问题,其实现方式为手机客户端与服务器端通过webservice进行交互,如下:

  2 性能测试策略

  使用工具模拟多用户进行webservice在手机客户端和服务器端的交互。

  3 测试工具

  Loadrunner、SoupUI

  4 Loadrunner进行webservice测试

  4.1 访问url,将网页保存为wsd文件

  http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService?wsdl

  4.2 新建脚本

  4.3 问题

  按照上面的步骤执行脚本,发现有错,提示信息如下:

  该问题暂时无法解决,需要再进一步的研究,现用soap_request函数实现webservice的测试。

  4.4 实现webservice测试

  使用web_add_header(用户添加webservice头)、soap_request(用户向服务器发送webservice请求)、lr_convert_string_encoding(用于将webservice请求的XML转换为UTF-8格式,必须要转换为UTF-8格式,否则在请求的XML中如果含有中文字符的话将会请求失败)、和lr_eval_string(用于向soap_request函数传递转换后的UTF-8格式参数值)函数实现webservice测试,代码如下:

  Action()

  {

  intrc = 0;

  unsigned longconverted_buffer_size_unicode = 0;

  char*converted_buffer_unicode = NULL;

  char*strnew = NULL;

  web_add_header("SOAPAction",

  "\"\"");

  web_add_header("User-Agent",

  "Jakarta Commons-HttpClient/3.1");

  web_add_header("Content-Type",

  "text/xml;charset=UTF-8");

  strnew= "SOAPEnvelope= {NewParam_1}number有实物无帐该产品没有入账77804179huangjq96";

  rc =lr_convert_string_encoding(strnew,

  LR_ENC_SYSTEM_LOCALE,

  LR_ENC_UTF8,

  "new");

  //上传异常盘点信息

  soap_request("StepName=login",

  "URL=http://10.192.17.40/PanasonicQR/MobileService/UploadInventoryService",

  lr_eval_string("{new}"),

  "Snapshot=t1.inf",

  "ResponseParam=result",

  LAST);

  return0;

  }

  4.5 日志查看

  在Run-time中设置Log显示方式,显示更多的日志,以便追踪脚本运行状况。

  4.6 模拟多用户并发测试

  Loadrunner的Webservice测试license:AEAMAUIK-YAFEKEKJJKEEA-BCJGI

  缺点:该license最多只支持100个用户并发测试。

          原文出处:http://www.51testing.com/?uid-65519-action-viewspace-itemid-133200

  5 SoupUI

  5.1 新建项目

  项目对应url格式为:

  http://10.192.17.3/PanasonicQR/MobileService/UploadInventoryService?wsdl

  5.2 运行方法,提交请求

  5.3Testsuite

  5.4 Loadtest

  通过线程数虚拟多个用户进行测试。

0
相关文章