用SoapUI进行Webservice的性能压力测试

合集下载

SoapUI实践自动化测试压力测试持续集成-51Testing

SoapUI实践自动化测试压力测试持续集成-51Testing

SoapUI实践:自动化测试、压力测试、持续集成因为项目的原因,前段时间研究并使用了SoapUI 测试工具进行自测开发的api。

下面将研究的成果展示给大家,希望对需要的人有所帮助。

SoapUI 是什么?SoapUI 是一个开源测试工具,通过soap/http 来检查、调用、实现Web Service 的功能/负载/符合性测试。

该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij 中使用。

SoapUI 的安装下载地址,最好下载最新版本安装包,因为SoapUI 是基于java 开发的测试工具,3.0 以前版本的安装包没有集成JRE,这样就得自己安装和配置java 运行环境了。

SoapUI 的使用1. 在主界面File 菜单,点击“New REST Project”,填写你想要测试的url,根据我们的项目Teacher Site 中的url 举例:参照下图需要在Resource 输入框输入/Login/Login 路由,并在Params 中输入登录时需要的查询参数accountName 和password。

2. 点击绿色按钮,SoapUI 发送登录请求,可以在右侧框中看到登录请求返回的结果。

根据Teacher site 项目的业务需求,发送Login 请求完成后还得发送SchoolItemChange 接口才会返回用户登录成功后认证的Token,如下图中Set-Cookie 的值将会在下一个GetOverview 接口的请求头中Cookie 属性使用:3. 接下来的第三个请求GetOverview 如下图,在Header 框中添加Cookie 属性,值就是上一个请求SchoolItemChange 返回的Set-Cookie 值:自动化测试其实以上三个接口的调用,只是简单的测试接口是否调用正常,如果想要对三个接口的调用进行自动化测试,请看下面的分解:1. 右键每一个接口下的Request 请求,如图所示,选择”Add TestCase”项,依次为以上三个接口设置Test Case,在TestSteps 下分别有Login,SchoolItemChange,GetOverview 三个TestCases。

WebService接口性能测试

WebService接口性能测试
SOAP协议请求也是基于http协议传输。利用这一点我们可以用http协议中自定义请求方法web_custom_request()来编写脚本发送请求到WebService。
下面附件是脚本示例:
web_add_header("Content-Type", "text/xml; charset=utf-8");
lr_start_transaction("addMenuInfo");
web_custom_request("HttpSoapRequest",
"URL=http://xxxxxxxxxxx/autovoiceWsiEntrance?wsdl",
"Method=POST",
"Resource=0",
"RecContentType=text/xml",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
"EncType=text/xml; charset=utf-8",
"Body=<?xml version=\"1.#34;?>"
web_add_header("Accept", "*.*");
web_add_header("Cache-Control", "no-cache");
web_add_header("SOAPAction", "");
//插入添加主菜单事务扩展接口

SoapUI测试SAP的Web Service

SoapUI测试SAP的Web Service

使用SoapUI测试SAP的Web Service我们经常会遇到SAP系统与外部系统对接的需求,而web service就是一个比较好用的工具。

下面讲解一下如何测试web service以及调试。

1.安装SoapUISoapUI可以在网上找到免费开源的版本,我的是Mac电脑,目前最新的是Soapui 5.4.0。

安装过程省略2.打开soapui如下图所示然后在Project上右键,选择New SOAP Project然后在Initial WSDL里面添加发布的web service地址然后在Project那里就会出现添加的接口双击Request 1就会出现如图所示的接口字段然后添加接口连接到SAP的账号,找到如上图所示的Auth,点击如下图所示的,选择Add New Authorization然后在弹出的界面选择OK,如下图所示:然后输入账号和密码(web service接口连接SAP的账号和密码,需要对话类型的账号,不然无法打外部断点)。

输入完之后,点击Auth隐藏账号界面然后就出现如下图所示:上图中打问号的地方就是需要填写值的地方。

当填完一些参数之后,点击执行,就能得到一些返回结果,如下图所示这说明接口就是通的。

特别需要注意的地方是:在使用soapui来测试sap的web service时,日期,数量,金额字段因为类型不一样,要么不传值,将参数里的问号去掉,要么就是传一个类型正确的值,不然接口不会通的。

如果接口不通,可以到服务器端查询也可以打外部断点来进行调试。

本文档是写给媳妇儿Yuna看的。

所以我只保证她能看懂。

其他人如有不懂的地方,请参考网络上的其他文档,谢谢!。

Web Service 性能测试 soapUI还是Jmeter

Web Service 性能测试 soapUI还是Jmeter

经常有人问我web service的性能测试是用JMeter好还是SoapUI好。

说句实话这两款都是非常优秀的开源Web Service性能测试工具,简单地说哪个更好真不太容易。

影响Web Service 性能测试的因素太多到底谁的结果更准确一些很多时候并不主要取决于测试工具。

在soapUI官方网站上有一个文章比较了这两款工具,我将要点抽出来加以分析希望能反映它们的特点。

JMeter在整个负载测试的优越性是毋庸置疑的,它覆盖了常见的各种测试类型,如HTTP, JDBC, JMS 和SOAP。

单就Web Service测试,作者做了一个简单的实验,但并没有涉及太多的细节。

试验准备:本地Web Service,运行于JBoss 4.0.3SP1,每个简单请求在4种不同负载下执行5000次,分别是1线程,5线程,10线程和25线程。

在SoapUI中为简单起见均使用简单负载策略,并且五执行延时。

要分别记录关闭连接和非关闭连接方式的数据。

关闭连接方式是指每次请求完毕后关闭连接。

反之则是让连接仍然保持打开以等待下个请求,显然会省去很多额外开销。

在JMeter中也可以做类似配置,如线程数为1,循环次数5000或线程数25,循环200次。

环境:WinXP SP2, Pentium M 1.8 1 G RAM, JRE 1.5.0_06.结果:其中带*的是非关闭连接模式下测试的结果。

从结果中看出Jmeter的测试值均较SoapUI偏大,但与UI连接关闭模式下执行结果相差无几。

实验未给出JMeter命令行下的测试结果。

但从经验来讲,命令行执行方式避免了测试工具本身带来的巨大资源消耗,更接近真实值。

soapUI 在命令行连接不关闭模式下TPS随线程的增加在初期有明显上升的。

从计时机制来看,JMeter 用的是System.currentTimeMillis(),而soapUI用的是更为精确的System.nanoTime().综上所述(文中没有点明,但这是显而易见的),soapUI在单纯的Web Service 测试时有明显的优势,当要综合其他测试时可以组合使用多种工具。

webserviceapi自动化测试(一)

webserviceapi自动化测试(一)

webserviceapi自动化测试(一)最近在webservice的项目中,主要使用SOAPUI进行webservice的测试,SOAPUI是一个开源的测试API的工具,对于现在的SOAP,REST的webservice的支持都很好。

下面简单介绍下SOAPUI的原理,SOAPUI和大多数的工具一样,都是使用HTTPREQUEST对相应的资源进行请求很提取。

再得到response之后进行相应的处理,对XML进行XPATH定位。

注意的是SOAP方法中包含GET,POST的方法,POST的方法主要使用Application/xml的MIME形式发送相应的POST数据。

这里注意webservice都有一些通病,对SQLinjection基本都没有相应的保护,所以我们要注意的是对webservice中POST的数据进行校验。

也就是通常所说的安全校验。

对webservice的测试主要分为两个阶段,首先是对WEB Ui层面的数据XML Response与webservice的schema进行对比测试,其次是web Ui层面的数据与数据库服务器中相应的数据进行验证。

这两个阶段的测试必须进行对比,以防止webservice的编写严谨度不够。

在实际项目中遇到过这样的一个BUG,在UI界面的功能中,详细信息中的必填项(非0)与受限制项(比如有文本限制,字体限制等等)在webservice实现中没有体现,我们可以用0值POST 到数据库中。

主要是由于开发在wenservice编写中没有校验和严谨的设计。

SOAPUI支持的语言是GROOVY,作为JA V A 的脚本语言,GROOVY的扩展性很强,再加上SOAPUI中原本实现的utils类能对相应的response进行XPATH的定位,得到相应的数据进行验证,在webservice实现中还能够使用property transfer进行对参数的传递,功能十分强大。

在使用SOAPUI前如果是大数据量的,比如100个CASE对数据的查询比较频繁,建议在使用前,对SOAPUI的JVM的设置提高,建议在1G左右,这样可以提高SOAPUI的可用性。

SoapUI调用webservice实现的两种方式

SoapUI调用webservice实现的两种方式

SoapUI调⽤webservice实现的两种⽅式SoapUI⽤来做测试,已经是很多⼈做过的事情了,⽽且⽹上教程也很多。

不过还是写下来,对⽐webservice协议与http协议脚本编写的不同。

⾸先测接⼝得有⼀个服务,刚好笔者所在项⽬做ESB集成。

就顺道⽤⼀下⼯作环境截⼏张图。

业务模型: 从客户端post⼀个字符串给ESB服务器,ESB服务器收到该请求后,返回⼀个在原字符串前添加⼀个Hello。

请求的报⽂添加三个head“Svc_Inbound","TEST"”Svc_ServiceCode","AAA-TEST-BBB""Svc_Version","1"报⽂正⽂<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="/soap/envelope/" xmlns:ser=""><soapenv:Header/><soapenv:Body><ser:sayHi><ser:in0>this is a request</ser:in0></ser:sayHi></soapenv:Body></soapenv:Envelope>服务器返回的报⽂<soap:Envelope xmlns:soap="/soap/envelope/" xmlns:xsd="/2001/XMLSchema" xmlns:xsi="/2001/XMLSchema-instance"> <soap:Body><ns1:sayHiResponse xmlns:ns1=""><ns1:out>Hello this is a request</ns1:out></ns1:sayHiResponse></soap:Body></soap:Envelope>1.通过SOAP协议实现功能的实现,⾸先⽤soapui来实现,打开soapui ,file---new soap project在⼯程创建弹出框输⼊WSDL地址,输⼊⼯程名称,点击OK双击Request 1,在创建⼯程时创建的默认请求,双击后会看到该请求内容。

SOAPUI接口测试使用手册

SOAPUI接口测试使用手册

SoapUI接口测试使用手册()\1.~的介绍2.SoapUISoapUI是专门针对Webservice接口的测试工具,功能强大且界面易用。

它是直接利用Web Service的WSDL文件测试Web服务的接口,利用SOAPUI测试不需要了解底层的接口、调用关系及详细协议,也不需要使用编程来实现测试用例,而是基于WSDL自动产生测试消息。

SOAPUI还支持接口的负载测试。

在对同一Web Service接口进行测试时,SOAPUI比Loadrunner表现的性能会更加优越、真实,更接近反映接口的性能指标。

并且SoapUI支持多种语言,java、c++,且wcf 这种形式的接口也可支持。

3.S oapUI的安装SoapUI基于JAVA开发,支持多个平台,需要设置JAVA_HOME 变量指向到相应的JRE 目录,同时修改PATH 变量,将的bin 目录添加到PATH里面。

4.S oapUI接口测试3.1创建/导入工程启动SoapUI程序,双击目录bin下的,即可启动程序。

程序第一次打开后,在左侧导航面板上,自动有一个空的Projects 工程。

鼠标右键点击Projects,选择第一项“New SoapUI Project”,新建一个工程。

(如果本地有现成的工程,也可直接选择第二项导入工程“Import Project”,选择本地的xml文件导入即可)如下图《页面弹出“New SoapUI Project”框,输入Project Name,“Initial WSDL/WADL”可填入URL 地址或直接导入WSDL 文件,(在这一步骤中,也可不导入WSDL文件,等到工程创建好后,右键点击工程名,选择“Add WSDL”也可导入)如下图所示:—默认选上:Create Requests:Create sample requests for all operations(为每个接口创建一个请求)Create TestSuite:Creates a TestSuite for the imported WSDL or WADL(为WSDL 或WADL 创建一个测试包)点击OK按钮,弹出创建测试包的对话框“Generate TestSuite”:、此处显示的都是WSDL文件中的所有方法,只须选择要测试的方用来进行接口的性能测试,如果有需要可以勾选说明:Single TestCase with one Request for each Operation(为每个接口的请求都创建一个测试用例)Create new empty requests(创建一个空的请求)Generates a default LoadTest for each created TestCase(为每个创建好的测试用例生成一个默认的负载测试)》点击OK按钮,在弹出框中填入测试包的名称,点击确定按钮后,工程便创建成功。

WebService测试方案(soapUI)

WebService测试方案(soapUI)

WebService测试方案
1.WebService简介
WebService是一种革命性的分布式计算技术,本质上就是网络上可用的API,可以直接在网络环境调用的方法。

WebService常用的框架有axis、xfire、cxf等。

WebService发布后,其服务是封装在一个wsdl(Web Services Description Language,Web服务描述语言)文件中,客户端发请求主要是向发布好的wsdl地址以SOAP方式发请求,调用过程如下:
Ø 服务端:
n 生成服务描述文件,以供客户端获取。

n 接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式。

n 根据wsdl和wsml的描述,调用相应的COM对象来完成指定功能,并把返回值放入SOAP回应消息返回给用户。

Ø 客户端:
n 取得服务端的服务描述文件,解析该文件从而获得服务端的服务信息以及调用方式。

n 指定调用方法和参数,生成恰当的SOAP请求消息,发往服务端。

n 等待服务端返回的SOAP回应消息,解析得到返回值。

2.WebService测试说明
WebService的测试主要围绕功能测试、性能测试和安全性测试展开,下面主要描述WebService三大测试的要点。

PS:双击后Ctrl+A,Ctrl+C然后粘贴到word即可不能直接提供word版,抱歉。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用S o a p U I进行W e b s e r v i c e的性能压
力测试
Company number:【0089WT-8898YT-W8CCB-BUUT-202108】
用S o a p U I进行W e b s e r v i c e的性能压力测试1. 新建测试工程
选择在一个测试用例中测试多个方法,并为测试生成压力测试:
2. 为测试 Step 添加变量:
右键选中 Test Step ,添加一个 Grooy Script Step ;添加一个变量 count 并设置初始值为0
3. 添加一个随机变量:
右键选中 Test Step ,添加一个 Grooy Script Step ;名称为 rand ,用下面的代码产生一个随机值
view plaincopy to clipboardprint
rand = new Random()
= "test_" + (100)
Random rand = new Random()
result = "test_" + (100)
4. 使用动态参数:
打开 init 操作的 SOAP 请求,将输入参数用上面步骤产生的随机替换
view plaincopy to clipboardprint
02. <soapenv:Header/>
03. <soapenv:Body>
04. <web:run>
05. <web:in0>${rand#result}</web:in0>
06. </web:run>
07. </soapenv:Body>
08.</soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<web:run>
<web:in0>${rand#result}</web:in0>
</web:run>
</soapenv:Body>
</soapenv:Envelope>
5. 按条件选择执行操作:
同样的再添加一个 Grooy Script Step ;名称叫 ExecHandler ,用来条件控制用例的执行
view plaincopy to clipboardprint
index = ("count")
(index == "0") {
04. ("init")
05.} else {
06. ("run")
07.}
def index = ("count")
if (index == "0") {
("init")
} else {
("run")
}
("count", "1")
6. 执行测试:
打开 LoadTest , disable 掉 init 和 run(ExecHandler 控制 init 和 run 的执行 ) ,设置好参数, OK 可以开始跑了。

正如你所预期的 init 方法只执行一次,而 run 将会按照你所设置的方式来执行。

相关文档
最新文档