SoapUI中文教程
- 格式:docx
- 大小:14.29 KB
- 文档页数:5
About the T utorialSoapUI is an open-source tool used for functional and non-functional testing, widely used in WebServices testing. This is a brief tutorial that introduces the readers to the basic features and usage of SoapUI. The tutorial will guide the users on how to utilize the tool in WebService and other non-functional testing.AudienceThis tutorial has been prepared for beginners to help them understand how to use the SOAPUI tool.PrerequisitesAs a reader of this tutorial, you should have a basic understanding of the client/server environment, and knowledge of SOAP, WSDL, XML, and XML namespace.Copyright & DisclaimerCopyright 2018 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or inthistutorial,******************************************iT able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Copyright & Disclaimer (i)Table of Contents ....................................................................................................................................... i i1.SOAP ─ INTRODUCTION (1)2.SOAP ─ MESSAGES (2)3.SOAP ─ WHAT IS REST? (4)4.SOAPUI ─ INTRODUCTIO N (5)5.SOAPUI ─ CAPABILITIE S (6)6.SOAPUI ─ NG PRO (8)7.SOAPUI ─ INSTALLATIO N & CONFIGURATION (9)8.SOAPUI ─ WSDL (19)WSDL Usage (19)Understanding WSDL (20)Format and Elements (20)WSDL – Port Type (22)Patterns of Operation (22)ii9.SOAPUI ─ PROJECT (26)Create a SOAP Project (26)Add a WSDL (28)Details View (30)10.SOAPUI – TESTSUITE (33)Creation of TestSuite (33)11.SOAPUI – TESTCASE (37)12.SOAPUI ─ TESTSTEP (39)13.SOAPUI ─ REQUEST & R ESPONSE (42)Request Setup (42)Response (42)HTTP Request (43)HTTP Response (44)14.SOAPUI ─ PRO PERTIES (46)Defining Properties (46)Accessing Property (47)15.SOAPUI ─ PROPERTY TRANSFER (49)Adding Property Transfer (49)Transferring a Property (50)iii16. SOAPUI ─ LOGS PANE (54)SOAP UI Log (55)HTTP Log (55)Error Log (56)Memory Log (56)17.SOAPUI – ASSERTIONS (57)18.ASSERTION ─ CONTAINS (60)19.ASSERTION ─ NOT CONT AINS (63)20.ASSERTION ─ XPATH MA TCH (65)21.ASSERTION – XQUERY MATCH (68)22.ASSERTION ─ SCRIPT (70)23.SOAPUI – TROUBLESHOOTING (74)24.SOAPUI ─ PERFORMANCE TESTING (76)Types of Performance Testing (76)Key Aspects in Web Service (76)25.SOAPUI ─ LOAD TESTIN G (78)Creation of Load Test (78)Execution of Load Test (79)Adding an Assertion (81)26.SOAPUI ─ RESTFUL WEB SERVICES (84)27.REST ─ PROJECT SETUP (85)iv28.REST ─ WADL (88)29.REST ─ REQUEST (90)30.REST ─ RESPONSE (94)31.REST ─ HTTP METHODS (97)POST (97)GET (97)PUT (98)PATCH (98)DELETE (99)32.SOAPUI ─ JDBC CONNEC TION (100)33.SOAPUI ─ JDBC PROPER TY (103)34.SOAPUI – JDBC ASSERTION (104)vSOAP is the acronym for Simple Object Access Protocol. It is defined by World Wide Web Consortium (W3C) at /TR/2000/NOTE-SOAP-20000508 as follows: SOAP is a lightweight protocol for the exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it; a set of encoding rules for expressing instances of application-defined data types; and a convention for representing remote procedure calls and responses.SOAP ─ Important FeaturesFollowing are some important features of SOAP.∙It is a communication protocol designed to communicate via Internet.∙It can extend HTTP for XML messaging.∙It provides data transport for Web services.∙It can exchange complete documents or call a remote procedure.∙It can be used for broadcasting a message.∙It is both platform and language independent.∙It is the XML way of defining what information is sent and how.∙It enables client applications to easily connect to remote services and invoke remote methods.Although SOAP can be used in a variety of messaging systems and can be delivered via a variety of transport protocols, the initial focus of SOAP is remote procedure calls transported via HTTP. Other frameworks such as CORBA, DCOM, and Java RMI provide similar functionality to SOAP, but SOAP messages are written entirely in XML and are therefore uniquely platform- and language-independent.1A SOAP message is an ordinary XML document containing the following elements:∙Envelope: Defines the start and the end of the message. It is a mandatory element.∙Header: Contains any optional attributes of the message used in processing the message, either at an intermediary point or at the ultimate end-point. It is an optional element.∙Body: Contains the XML data comprising the message being sent. It is a mandatory element.∙Fault:An optional Fault element that provides information about errors that occur while processing the message.All these elements are declared in the default namespace for the SOAP envelope: /2001/12/soap-envelopeThe default namespace for SOAP encoding and data types is:/2001/12/soap-encodingNote: All these specifications are subject to change. Thus, keep updating yourself with the latest specifications available on the W3 website.SOAP ─ Message StructureThe following block depicts the general structure of a SOAP message:233.REST is the acronym for Representational State Transfer. It can be defined as an architectural style of designing softwares. REST is not a specification or W3C standard. Hence, it is easier to work with RESTful Services. It doesn’t require any middleware specification framework.REST ─ Important FeaturesFollowing are some important features of REST.∙It relies on stateless, client-server, cacheable communication protocol – virtually in all cases, HTTP is used.∙It is light-weighted alternative of WebService and RPC (Remote Procedure Call) like SOAP-WSDL.∙It represents everything in unique ID or URIs.∙It makes the use of standard HTTP methods, such as GET, POST, PUT, DELETE.∙It links sources together.∙REST resources could have multiple representations.∙Any named information is considered as a Resource. For example: An image, a person, a document, all can be considered as an example of resource and represented as a unique ID or a URI.∙World Wide Web itself, based on HTTP, can be viewed as REST based architecture. REST services are Platform and Language independent. Since it is based on HTTP standards, it can easily work in the presence of firewalls. Like WebServices, REST doesn’t offer any in-built security, session management, QoS guarantee but these can be added by building on top of HTTP. For encryption, REST can be used on top of HTTPS.45SoapUI is a tool which can be used for both functional and non-functional testing. It is not limited to web services, though it is the de-facto tool used in web services testing.SoapUI ─ Important FeaturesFollowing are some important features of SoapUI.∙ It is capable of performing the role of both client and service.∙It enables the users to create functional and non-functional tests quickly and in an efficient manner using a single environment.∙ It is licensed under the terms of the GNU Leaser General Public Licence (LGPL).∙ It is purely implemented using JAVA platform.∙ It supports Windows, Mac, multiple Linux dialects.∙It allows testers to execute automated functional, regression, compliance, and load tests on different Web API.∙It supports all the standard protocols and technologies to test all kinds of APIs.SOAP UI can be used to test complete RESTful API and SOAP Web Service testing. It supports Functional Testing, Performance Testing, Interoperability Testing, Regression Testing, Load Testing, and much more.It is user friendly as well as it is easy to convert functional test into non-functional tests such as Load, Stress testing.6S OAP UI is rich in the following five aspects:∙ Functional Testing ∙ Security Testing ∙ Load Testing∙ Protocols and Technologies ∙Integration with other toolsLet’s learn more about each of these capabilities.Functional Testing∙ SOAP UI allows the testers to write functional API tests in SOAP UI.∙ SOAP UI supports Drag-Drop feature that accelerates the script development.∙SOAP UI supports debugging of tests and allows testers to develop data driven tests.∙SOAP UI supports multiple environments making it easy to switch among QA, Dev, and Prod environments.∙SOAP UI allows advanced scripting (the tester can develop their custom code depending on the scenarios).Security Testing∙ SOAP UI performs a complete set of vulnerability scan.∙ SOAP UI prevents SQL Injection to secure the databases.∙ SOAP UI scans for stack overflows, caused by documents huge in size.∙SOAP UI scans for cross-site scripting, which occurs when service parameters are exposed in messages.∙SOAP UI performs fuzzing scan and boundary scan to avoid erratic behavior of the services.Load Testing∙ SOAP UI distributes the load tests across n number of LoadUI agents. ∙ SOAP UI simulates high volume and real-world load testing with ease.∙SOAP UI allows advanced custom reporting to capture performance parameters.7∙SOAP UI allows end-to-end system performance monitoring.Protocols& TechnologiesSOAP UI supports a wide range of protocols:∙SOAP – Simple Object Access Protocol∙WSDL – Web Service Definition Language∙REST – Representational State Transfer∙HTTP – Hyper Text Transmission Protocol∙HTTPS – Hyper Text Transmission Protocol Secured∙AMF –Action Message Format∙JDBC – Java Database Connectivity∙JMS – Java Messaging ServiceIntegration w ith O ther T ools∙Apache Maven Project∙HUDSON∙JUnit∙Apache – Ant and more….6.SOAP UI is an open source free version tool with basic features of testing, while SOAP UI NG Pro is a commercialized tool having advanced features of reporting, data-driven functionality and much more.ComparisonThe following table compares and contrasts the various features of SoapUI and SoapUI NG Pro.897.SoapUI is a cross-platform tool. It supports Windows, Linux, and Mac operating systems.Prerequisites∙Processor: 1GHz or higher 32-bit or 64-bit processor.∙RAM: 512MB of RAM.∙Hard Disk Space: Minimum 200MB of hard disk space for installation.∙Operating System Version: Windows XP or later, MAC OS 10.4 or later.∙JAVA: JAVA 6 or later.Download ProcessStep 1: Go to https:/// and click Download SOAP UI.1011Step 2: Click ‘Get It’ to download SOAP UI Open Source. It will start downloading 112MB .exe file in the system. Wait till the download process is complete.12End of ebook previewIf you liked what you saw…Buy it from our store @ https://。
SoapUI使用说明zhangrong317@ 1 SoapUI 介绍由于Web 服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在SoapUI 等工具出现之前,测试人员不得不自己编写程序来测试它,这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。
SoapUI 的出现极大的改变了这一局面。
作为一个开源的工具,SoapUI 强大的功能、易用的界面,吸引了很多用户。
用户可以在SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节,极大的减轻了工作量。
SoapUI 支持多样的测试,例如功能测试,性能测试,回归测试等。
到目前为止SoapUI 的下载量已经超过了100万次,成为了Web服务测试标准和领先的Web 服务测试工具。
它不仅仅可以测试基于SOAP的Web 服务,也可以测试REST风格的Web 服务,后者也是本文介绍的重点。
SoapUI基于Java开发,支持多个平台,安装非常简单。
读者可以到SoapUI 的官方网站下载一个安装包( 本文使用的是Window 版本 3.0.1),直接安装即可。
在该安装包中,包括了一个SoapUI 所需要的JRE1.6 版本。
安装完毕以后,读者需要设置JA V A_HOME 变量指向到相应的JRE 目录,同时修改PATH 变量,将JRE1.6 的bin 目录添加进去。
2 SoapUI使用过程2.1 创建/导入工程安装并运行SoapUI之后,你就可以创建第一个SoapUI工程了。
程序第一次打开时,左侧导航面板上,自动有一个空的Projects工程。
右击左侧导航面板中的工作空间节点“Projects”,选择“New SoapUI Project”。
图表2-1页面弹出“New SoapUI Project”TAB页,填入Project Name,Initial WSDL/WADL可填入URL地址或直接导入WSDL文件,导入文件后,如下图所示:图表2-2默认选上:Create sample requests for all operations?(说明:为每个接口创建一个请求的例子)Creates a TestSuite for the imported WSDL or WADL(说明:为WSDL或WADL创建一个测试包)点击OK按钮后,页面弹出保存工程的提示,以project名称+“- soapui -project.xml”的形式进行命名,因此上述工程在保存时页面给出默认命名为test1_file-soapui-project.xml,直接点击保存即可。
SoapUI使用说明1 SoapUI 介绍由于 Web 服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在 SoapUI 等工具出现之前,测试人员不得不自己编写程序来测试它,这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。
SoapUI 的出现极大的改变了这一局面。
作为一个开源的工具,SoapUI 强大的功能、易用的界面,吸引了很多用户。
用户可以在 SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节,极大的减轻了工作量。
SoapUI 支持多样的测试,例如功能测试,性能测试,回归测试等。
到目前为止 SoapUI 的下载量已经超过了100万次,成为了Web服务测试标准和领先的 Web 服务测试工具。
它不仅仅可以测试基于SOAP的Web 服务,也可以测试REST风格的 Web服务,后者也是本文介绍的重点。
SoapUI基于Java开发,支持多个平台,安装非常简单。
读者可以到 SoapUI的官方网站下载一个安装包 ( 本文使用的是 Window 版本 3.0.1),直接安装即可。
在该安装包中,包括了一个 SoapUI 所需要的 JRE1.6 版本。
安装完毕以后,读者需要设置 JAVA_HOME 变量指向到相应的 JRE 目录,同时修改 PATH 变量,将 JRE1.6 的 bin 目录添加进去。
2 SoapUI使用过程2.1创建/导入工程安装并运行SoapUI之后,你就可以创建第一个SoapUI工程了。
程序第一次打开时,左侧导航面板上,自动有一个空的Projects工程。
右击左侧导航面板中的工作空间节点“Projects”,选择“New SoapUI Project”。
图表 2-1页面弹出“New SoapUI Project”TAB页,填入Project Name,Initial WSDL/WADL可填入URL地址或直接导入WSDL文件,导入文件后,如下图所示:图表 2-2默认选上:Create sample requests for all operations?(说明:为每个接口创建一个请求的例子)Creates a TestSuite for the imported WSDL or WADL(说明:为WSDL或WADL创建一个测试包)点击OK按钮后,页面弹出保存工程的提示,以project名称+“- soapui-project.xml”的形式进行命名,因此上述工程在保存时页面给出默认命名为test1_file-soapui-project.xml,直接点击保存即可。
SOAPUI中⽂教程---⽣成测试报告soapUI有⾼度的定制可能性; soapUI Pro中可打印的报告基于⾮常灵活的JasperReports报告引擎。
这些报告是从JasperReports⽣成的特定的基于XML的模板,可以在项⽬和全局层⾯进⾏定制,从⽽使您在创建的所有报告中都能轻松获得通⽤的外观和感觉。
在soapUI中创建可打印报告很容易; 只需从Report对话框中的 Report Type 下拉列表中选择相应的报告,则所选报告将⾃动编译并按配置⽣成。
Quick tip: 要充分了解soapUI Pro中的报告基础架构,您应该很好地掌握JasperReports及其模板语⾔的⼯作原理,否则下⾯的⼀些解释可能很难放在内容中1. 报告管理soapUI项⽬窗⼝包含⼀个报告选项卡,其中所有全局和项⽬级报告都可⽤:不同的⼦选项卡可让您访问主报表,⼦报表和模板以及项⽬级报表参数的底层XML。
可以根据需要创建,删除和编辑项⽬级别项⽬,但不能在soapUI中修改全局项⽬。
它们必须在⽂件系统中进⾏修改,并重新加载顶部⼯具栏中的“重新加载”按钮以进⾏更新(稍后再进⾏更改)。
2. 报告结构报表及其相应的DataSource:例如,MetricsReport⼦报表从ReportMetrics获取其数据,并包含在所有主要报告中,并具有以下语法:y="98" width="535" height="30" isRemoveLineWhenBlank="true"> $P{IncludeResults} ... $P{TestSuiteMetrics} "subreport:MetricsReport"TestSuiteMetrics暴露的字段在MetricsReport模板中相对定义:... ...Templates允许管理模板XML的公共块。
soapui接口测试教程SoapUI接口测试是一种常用的测试方法,它可以帮助我们验证接口的功能和性能。
以下是一个简单的教程,旨在帮助您了解如何使用SoapUI进行接口测试。
1. 下载和安装SoapUI: 首先,您需要从SoapUI官方网站下载并安装最新版本的SoapUI。
安装完成后,启动SoapUI。
2. 创建一个新项目: 打开SoapUI后,单击“File”菜单,然后选择“New SoapUI Project”。
在弹出窗口中,输入项目名称,并选择合适的WSDL文件或接口地址,然后单击“OK”。
3. 添加测试用例: 在项目窗口中,右键单击“Test Suites”,然后选择“New Test Suite”。
在弹出窗口中,输入测试套件的名称,并单击“OK”。
然后,右键单击新创建的测试套件,选择“New Test Case”,并为测试套件命名。
4. 设置测试步骤: 在测试用例窗口中,右键单击测试套件,然后选择“New Test Step”。
在弹出窗口中,选择适当的测试步骤类型,如“SOAP Request”或“REST Request”,然后单击“OK”。
根据接口要求,填写相应的请求和参数。
5. 添加断言: 在每个测试步骤中,您可以添加断言以验证接口的返回结果是否符合预期。
右键单击测试步骤,选择“Add Assertion”。
在弹出窗口中,选择合适的断言类型,如“Content”或“Response SLA”,并设置断言条件。
6. 运行测试: 在项目窗口中,选择要运行的测试用例或测试套件,然后单击工具栏上的“Run”按钮。
SoapUI将发送请求并收到相应的响应。
您可以查看每个测试步骤的结果,并检查接口是否按预期工作。
7. 生成报告: 在测试运行完成后,您可以生成测试报告以汇总测试结果。
在项目窗口中,选择要生成报告的测试用例或测试套件,然后单击工具栏上的“Generate Report”按钮。
选择报告格式和保存位置,然后单击“OK”。
soapui参数list传递在SoapUI中,可以使用参数列表(Parameter List)来传递多个参数值。
参数列表是一种特定的参数类型,它允许在一个请求中传递多个参数值,并可以根据需要进行动态修改。
以下是关于如何在SoapUI中使用参数列表的详细说明。
1.创建参数列表在SoapUI中,可以通过以下步骤创建参数列表:-在项目导航树中选择要使用参数列表的测试用例或测试步骤。
-在右侧的“属性”面板中,选择“新建参数列表”的选项。
-输入参数列表的名称,并点击“确定”按钮。
2.添加参数值一旦创建了参数列表,可以通过以下方式添加参数值:-在“属性”面板中选择参数列表。
-点击“新建参数值”的选项,输入参数值的名称和值,并点击“确定”按钮。
-可以根据需要添加更多的参数值。
3.使用参数列表使用参数列表的步骤如下:-在测试用例或测试步骤中的请求中,选择要替换为参数列表的参数值。
- 将参数值替换为`"${参数列表名称#参数值名称}"`的形式。
例如,如果参数列表名称为“myList”,参数值名称为“param1”,则替换后的形式为`${myList#param1}`。
-运行测试用例或测试步骤时,参数值将从参数列表中动态获取。
4.修改参数列表的值可以在测试运行时动态修改参数列表中的参数值。
可以通过以下方式进行修改:-在弹出的参数列表对话框中,选择要修改的参数值。
-修改参数值的名称或值,并点击“确定”按钮。
-在测试运行期间,参数值将根据最新的修改值进行更新。
5.使用循环语句在一些情况下,可能需要使用循环语句来迭代参数列表中的参数值。
可以通过以下方式实现循环功能:- 在测试用例或测试步骤的Groovy脚本中,编写循环语句,并使用Groovy语法来访问参数列表中的参数值。
- 在循环中使用`context.expand('${参数列表名称}')`来获取参数列表的值,并在每次迭代中访问不同的参数值。
一soapUI基本概念由于Web 服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,soapUI是针对这种情况开发的一个工具,用户可以在soapUI 中通过简单的操作完成复杂的测试。
目前我们系统中电子渠道接口、充值卡接口都是用WebService实现的,因此需要用到SoapUI进行测试。
SoapUI不仅可以简单地执行测试,而且可以自动运行已经准备好的测试用例,另外它也有性能测试的功能,虽然不及Loadrunner强大,但相对比较简单易用。
下文中主要介绍它的基本功能,不包括性能测试的部分。
在创建测试用例之前,我们先来看一看在soapUI 中的基本概念,soapUI 把REST 服务、资源及其操作组织为一个层次结构。
如图1所示,主要包括如下层次:● 项目定义:位于最上层(BookStoreTest),项目可以包含多个服务的定义。
● REST 服务定义:服务其实是对多个REST 资源的一个分组,在我们的例子中只有一个服务BookStoreServie● REST 资源定义:具体描述该资源的名称,URI, 参数等属性● REST 方法定义:针对每个资源的方法(GET,POST,PUT,DELETE 等),图 1 中的方法名就是GetBookList● REST 操作请求定义:基于每个方法,可以有一个或多个请求操作,如GetBookListRequest,这些请求操作才是真正被soapUI 所调用执行的。
每个请求可以设置非常丰富的信息,例如Accept 类型,请求的Header 信息,运行了该请求以后,就能以各种方式查看运行结果。
但是这里还不能加入断言来验证结果- 必须在建立测试用例以后才能使用。
对于测试用例来讲,同样是一个层次结构:● TestSuite:类似于Junit 中的测试套件,其中可以加入多个TestCase● TestCase:可以包含多个TestStep● Tes tStep:一个TestCase 可以包含多个TestStep,TestStep 有多种类型,它可以是上面提到一个REST 操作请求,也可以是一个Groovy 的脚本,还可以试一个设置属性的操作。
SoapUI中文教程SoapUI是一款用于测试和构建Web服务的开源工具。
它支持SOAP (Simple Object Access Protocol)和REST(Representational State Transfer)两种Web服务协议,并提供了一个直观和易于使用的图形界面来创建和执行测试用例。
下面是一个关于SoapUI的中文教程,帮助你快速入门和使用这个强大的测试工具。
第二步:创建一个新项目启动SoapUI后,点击左上角的“新建”按钮,选择“新建项目”来创建一个新项目。
在弹出的对话框中,输入项目的名称和Base URL,选择使用的协议(SOAP或REST),然后点击“确定”按钮。
第三步:创建一个测试套件在项目面板的左侧,你会看到一个叫做“Test Suites”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来创建一个新的测试套件。
输入测试套件的名称,然后点击“确定”按钮。
第四步:创建一个测试用例在测试套件选项卡下方,你会看到一个叫做“Test Cases”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来创建一个新的测试用例。
输入测试用例的名称,然后点击“确定”按钮。
第五步:添加测试步骤在测试用例选项卡下方,你会看到一个叫做“Test Steps”的选项卡。
点击它,在弹出的对话框中点击“添加”按钮来添加一个新的测试步骤。
根据你要测试的服务类型(SOAP或REST),选择对应的测试步骤类型。
对于SOAP服务,你可以选择“SOAP Request”测试步骤类型,然后在弹出对话框中输入请求的细节,如请求的操作、请求的消息和请求的终端。
对于REST服务,你可以选择“HTTP Request”测试步骤类型,然后在弹出对话框中输入请求的细节,如请求的方法、请求的URL和请求的头部。
第六步:运行测试用例在测试步骤选项卡下方,你会看到一个叫做“Run”的选项卡。
点击它,然后点击“运行”按钮来运行你的测试用例。
SoapUI基础入门1. soapUI是什么Web 服务是在服务端被程序调用的,,soapUI是针对这种情况开发的一个工具,用户可以在soapUI 中通过简单的操作完成复杂的测试。
目前我们系统中、网络中,像电子渠道接口、充值卡接口都是用WebService实现的,因此需要用到SoapUI进行测试。
SoapUI不仅可以简单地执行测试,而且可以自动运行已经准备好的测试用例,另外它也有性能测试的功能,虽然不及Loadrunner强大,但相对比较简单易用。
下文中主要介绍它的基本功能,不包括性能测试的部分。
2. 如何用soapUI测试Webservice 接口安装过程比较简单,直接默认就OK了,大家从ftp://180.200.3.233/SoapUI/上下载安装程序安装就可以了。
先从创建项目开始,菜单——文件——创建项目:说明:Create sample requests for all operations?:为每个接口创建一个请求的例子Creates a TestSuite for the imported WSDL or WADL:为WSDL 或WADL 创建一个测试包Create a Web Service Simulation of the imported WSDL:为WSDL创建一个模拟的服务端Initial WSDL/WADL:指定一个WSDL/WADL的路径,可以是本地或网络URL。
这里我们填写232 的充值卡接口路径:http://180.200.3.232:8080/interf/services/ServiceForRMP?wsdl然后点击[OK] 到下一步生成初始的测试用例:说明:One TestCase for each Operation:每个接口创建一个用例Single TestCase with one Request for each Operation:创建一个用例包含每个接口对应的请求Use existing Requests in Interface:使用已有的请求Create new empty requests:创建一个空的请求Generates a default LoadTest for each created TeseCase:每个用例生成一个负责测试确定后进入下一步,生成MockService。
soapui中⽂操作⼿册(⼀)
转载地址:/zerotest/p/4668203.html
1) 创建⼀个新的项⽬
1. 点击项⽬,选择新建项⽬SOAP。
这将打开⼀个新的SOAP项⽬对话框。
注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建⼀个新的SOAP项⽬。
2. 在新的SOAP项⽬对话框中输⼊项⽬名称,然后单击确定
New SoapUI pProject dialog
3. 这将创建在导航器⼀个新的项⽬。
4.
New SoapUI Project in Navigator
恭喜你,你刚刚创建了你的第⼀个项⽬SoapUI。
让我们添加⼀个WSDL。
2) 添加⼀个WSDL
在SoapUI项⽬中,SOAP⼤多是基于⼀个WSDL。
虽然不是必须通过导⼊WSDL,但它使测试更容易,因为WSDL包含您需要了解被测Web服务的所有信息,它们包含信息很多有关的请求和响应,这⼤⼤简化了测试SoapUI。
1. 右键单击该项⽬节点并选择添加WSDL
Add WSDL to a Web Service Test Project
2. 进⼊/currencyconvertor.asmx?WSDL点击确定。
3. 现在你应该看到了WSDL已成功添加到项⽬中看到在导航器中的Web服务的操作。
4. 您可以双击该项⽬的⼀个窗⼝,查看项⽬的概述。
随着项⽬和测试技能的增长,这种窗⼝
将是⾮常重要的,因为你可以在项⽬⾥管理⼀个很⼤的事情,⽐如JDBC连接,安全配置。
即使SoapUI包含项⽬窗⼝基本要求的功能。
SoapUI使用说明1 SoapUI 介绍由于 Web 服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在 SoapUI 等工具出现之前,测试人员不得不自己编写程序来测试它,这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。
SoapUI 的出现极大的改变了这一局面。
作为一个开源的工具,SoapUI 强大的功能、易用的界面,吸引了很多用户。
用户可以在 SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节,极大的减轻了工作量。
SoapUI 支持多样的测试,例如功能测试,性能测试,回归测试等。
到目前为止 SoapUI 的下载量已经超过了100万次,成为了Web服务测试标准和领先的 Web 服务测试工具。
它不仅仅可以测试基于SOAP的Web 服务,也可以测试REST风格的 Web服务,后者也是本文介绍的重点。
SoapUI基于Java开发,支持多个平台,安装非常简单。
读者可以到 SoapUI的官方网站下载一个安装包 ( 本文使用的是 Window 版本 3.0.1),直接安装即可。
在该安装包中,包括了一个 SoapUI 所需要的 JRE1.6 版本。
安装完毕以后,读者需要设置 JAVA_HOME 变量指向到相应的 JRE 目录,同时修改 PATH 变量,将 JRE1.6 的 bin 目录添加进去。
2 SoapUI使用过程2.1创建/导入工程安装并运行SoapUI之后,你就可以创建第一个SoapUI工程了。
程序第一次打开时,左侧导航面板上,自动有一个空的Projects工程。
右击左侧导航面板中的工作空间节点“Projects”,选择“New SoapUI Project”。
图表 2-1页面弹出“New SoapUI Project”TAB页,填入Project Name,Initial WSDL/WADL可填入URL地址或直接导入WSDL文件,导入文件后,如下图所示:图表 2-2默认选上:Create sample requests for all operations?(说明:为每个接口创建一个请求的例子)Creates a TestSuite for the imported WSDL or WADL(说明:为WSDL或WADL创建一个测试包)点击OK按钮后,页面弹出保存工程的提示,以project名称+“- soapui-project.xml”的形式进行命名,因此上述工程在保存时页面给出默认命名为test1_file-soapui-project.xml,直接点击保存即可。
小熊猫(314515887) 15:58:22小熊猫(314515887) 15:59:25浏览刚才的某个接口文件,OK女王汉子(602783837) 16:00:43女王汉子(602783837) 16:00:47 天气的我弄好了女王汉子(602783837) 16:00:51 接下来豆豆(491293011) 16:01:05双击查看原图讲的好细致啊女王汉子(602783837) 16:01:15 美女师傅啊小熊猫(314515887) 16:01:31小熊猫(314515887) 16:01:42 打开某一个接口的方法小熊猫(314515887) 16:02:14 点击运行小熊猫(314515887) 16:02:23小熊猫(314515887) 16:02:27 绿色箭头女王汉子(602783837) 16:02:41小熊猫(314515887) 16:02:44这个方法是不输入参数的,所以直接点击运行按钮女王汉子(602783837) 16:02:44有结果了小熊猫(314515887) 16:02:52对,这就是response小熊猫(314515887) 16:02:56返回结果小熊猫(314515887) 16:03:24小熊猫(314515887) 16:03:46有的方法是需要输入参数的,你就得根据需要输入参数,然后运行,看返回结果女王汉子(602783837) 16:04:25小熊猫(314515887) 16:05:04这个方法不需要参数女王汉子(602783837) 16:05:24 找到一个了女王汉子(602783837) 16:05:27女王汉子(602783837) 16:05:28 师傅女王汉子(602783837) 16:06:07 又找到一个小熊猫(314515887) 16:07:34再输入参数的地方,输入合法的参数,咱们数个3113,假设它是合法参数吧小熊猫(314515887) 16:07:45然后运行,看看返回结果小熊猫(314515887) 16:08:04小熊猫(314515887) 16:08:54 找到合法参数了小熊猫(314515887) 16:09:31 运行这个request看返回值小熊猫(314515887) 16:10:00 得到各个省份的代码小熊猫(314515887) 16:10:17小熊猫(314515887) 16:10:25 返回了各个省份的代码小熊猫(314515887) 16:11:20女王汉子(602783837) 16:11:09 不是你这个界面女王汉子(602783837) 16:11:11 师傅小熊猫(314515887) 16:11:28 你们的不是破解版小熊猫(314515887) 16:11:34 是简单版女王汉子(602783837) 16:12:07 简单版本用不了吗?小熊猫(314515887) 16:12:23用的了,不容易观看就是,女王汉子(602783837) 16:12:20我是在这里输入3113女王汉子(602783837) 16:12:26/bangbangt快乐(1229151461) 16:12:28奥奥,我知道了,这个是返回省份信息的小熊猫(314515887) 16:12:33输入你熟悉的城市代码小熊猫(314515887) 16:12:49@/bangbangt理想真棒小熊猫(314515887) 16:13:02听我的小熊猫(314515887) 16:13:05一步步来小熊猫(314515887) 16:13:22找到小熊猫(314515887) 16:13:37 在?里输入3113或者3115,女王汉子(602783837) 16:13:48 是这样做的女王汉子(602783837) 16:13:51 结果不一样女王汉子(602783837) 16:13:55 现在怎么办?小熊猫(314515887) 16:13:57小熊猫(314515887) 16:14:10 你输入了吗女王汉子(602783837) 16:14:12小熊猫(314515887) 16:14:27对了女王汉子(602783837) 16:14:46小熊猫(314515887) 16:16:10 对了小熊猫(314515887) 16:16:17 这个返回结果是对的女王汉子(602783837) 16:16:26女王汉子(602783837) 16:16:31 这个刚才也做了女王汉子(602783837) 16:16:34 黑小熊猫(314515887) 16:16:50 行了女王汉子(602783837) 16:16:51 然后这个就是手动的哦女王汉子(602783837) 16:17:02 师傅继续小熊猫(314515887) 16:17:12 这就是用soapUi调用接口小熊猫(314515887) 16:17:18 接下来建立测试用例女王汉子(602783837) 16:17:26 好小熊猫(314515887) 16:17:55小熊猫(314515887) 16:18:22确定-确定-OK女王汉子(602783837) 16:18:26小熊猫(314515887) 16:18:43确定-确定-OK小熊猫(314515887) 16:19:03建立测试用例包的意思女王汉子(602783837) 16:19:32创建完以后拿小熊猫(314515887) 16:20:40小熊猫(314515887) 16:20:46 看明白结构了吗女王汉子(602783837) 16:20:58 明白女王汉子(602783837) 16:21:15 要写脚本吗?女王汉子(602783837) 16:21:21 这个是关键?小熊猫(314515887) 16:21:21小熊猫(314515887) 16:21:25不写脚本先小熊猫(314515887) 16:21:44就用soapUI自带的简单步骤就行小熊猫(314515887) 16:22:02刚才就一个步骤,你得手动输参数/bangbangt快乐(1229151461) 16:22:06 这是创建什么啊女王汉子(602783837) 16:22:12小熊猫(314515887) 16:22:13属性步骤小熊猫(314515887) 16:23:08小熊猫(314515887) 16:23:16把属性步骤上移小熊猫(314515887) 16:23:21到request上面小熊猫(314515887) 16:23:50会吧?/bangbangt快乐(1229151461) 16:23:51 什么意思/bangbangt快乐(1229151461) 16:23:59 怎么上移小熊猫(314515887) 16:24:05右键小熊猫(314515887) 16:24:13 MOVEup.(570145929) 16:24:21按住ctrl加↑小熊猫(314515887) 16:24:31小熊猫(314515887) 16:24:40或者点击住拖拽/bangbangt快乐(1229151461) 16:24:41 但是有一点没看明白小熊猫(314515887) 16:24:45?/bangbangt快乐(1229151461) 16:25:01 怎么刚才的test steps(1)/bangbangt快乐(1229151461) 16:25:07 变成(2)了小熊猫(314515887) 16:25:20说明里面有2个步骤/bangbangt快乐(1229151461) 16:25:41奥奥,那个数字代表里面步骤数量是吗小熊猫(314515887) 16:25:45对/bangbangt快乐(1229151461) 17:16:04我想问一下,那个这里为什么要网上移啊为什么那.(570145929) 17:25:17teststep为什么要移动?是因为case在执行的时候是从上到下顺序执行的操作是有顺序的肯定要先设置传参再执行接口调用就是这样.(570145929) 17:25:33但是不是所有的都要移动视情况而定/bangbangt快乐(1229151461) 17:16:51还有,很混乱的一件事就是里面有那么多我在财经(243416360) 17:17:21 都是方法小熊猫(314515887) 16:26:20女王汉子(602783837) 16:28:52小熊猫(314515887) 16:29:08 双击查看原图女王汉子(602783837) 16:29:11 直接拖小熊猫(314515887) 16:29:18 双击属性步骤女王汉子(602783837) 16:30:34小熊猫(314515887) 16:30:47小熊猫(314515887) 16:30:56点这个加号女王汉子(602783837) 16:30:58/bangbangt快乐(1229151461) 16:30:59 这是什么按钮啊、小熊猫(314515887) 16:31:59 增加一个属性变量,赋值3115小熊猫(314515887) 16:32:17 然后这步就可以了小熊猫(314515887) 16:32:29 再打开request步骤小熊猫(314515887) 16:33:31小熊猫(314515887) 16:33:56小熊猫(314515887) 16:34:07你们不是专业版笨小熊猫(314515887) 16:34:23没有那个按钮功能,就在XML里面输入小熊猫(314515887) 16:34:33小熊猫(314515887) 16:34:40${Properties#myCode}小熊猫(314515887) 16:36:04这个字符串的含义就是要去取上一个属性步骤里的myCode的值小熊猫(314515887) 16:36:20传参小熊猫(314515887) 16:36:38根据你们的名字写小熊猫(314515887) 16:36:55汉子的上一个步骤名字不是Properties女王汉子(602783837) 16:37:28女王汉子(602783837) 16:37:34改回来了小熊猫(314515887) 16:37:40对小熊猫(314515887) 16:38:04你属性步骤里面定义的那个变量是myCode吗女王汉子(602783837) 16:38:14是小熊猫(314515887) 16:38:18 要根据你们自己定义的名字去写小熊猫(314515887) 16:38:20 那就行了小熊猫(314515887) 16:38:28 这一步也结束了女王汉子(602783837) 16:38:36小熊猫(314515887) 16:38:57 双击TestCase小熊猫(314515887) 16:39:07小熊猫(314515887) 16:39:40小熊猫(314515887) 16:39:53 运行女王汉子(602783837) 16:40:24失败/bangbangt快乐(1229151461) 16:40:34 啊/bangbangt快乐(1229151461) 16:41:02 有没有显示失败原因女王汉子(602783837) 16:41:05不可以改参数名称吗?小熊猫(314515887) 16:41:27可以改啊女王汉子(602783837) 16:41:27小熊猫(314515887) 16:41:31完全可以/bangbangt快乐(1229151461) 16:41:57 加载参数失败小熊猫(314515887) 16:42:08你打开你的属性小熊猫(314515887) 16:42:10 步骤小熊猫(314515887) 16:42:12 我看看女王汉子(602783837) 16:42:24小熊猫(314515887) 16:42:32哎小熊猫(314515887) 16:42:40 注意大小写女王汉子(602783837) 16:43:04 哪里?女王汉子(602783837) 16:43:17 师傅你的不也是小写吗?小熊猫(314515887) 16:43:22小熊猫(314515887) 16:43:32你这俩根本不是一个参数小熊猫(314515887) 16:44:02这是我的女王汉子(602783837) 16:44:03好了女王汉子(602783837) 16:44:26/bangbangt快乐(1229151461) 16:44:46运行结果那小熊猫(314515887) 16:45:04/bangbangt快乐(1229151461) 16:45:05???这边么小熊猫(314515887) 16:45:10是这样子吧小熊猫(314515887) 16:45:25这边就是你的接口返回的值女王汉子(602783837) 16:45:37还是失败?小熊猫(314515887) 16:46:00你发一个request消息,服务器回发一个response消息女王汉子(602783837) 16:50:21测试用例就一个吗?小熊猫(314515887) 16:50:29当然不了女王汉子(602783837) 16:50:31应该有很多个用例小熊猫(314515887) 16:50:51/bangbangt快乐(1229151461) 16:51:03一个参数测试用例么师傅小熊猫(314515887) 16:51:16运行一整个测试包女王汉子(602783837) 16:51:38一个包点击运行了小熊猫(314515887) 16:51:44你平时怎么设计测试用例这里就怎么设计小熊猫(314515887) 16:51:54对,一个包女王汉子(602783837) 16:51:56全部都跑女王汉子(602783837) 16:52:07这样是节约很多时间小熊猫(314515887) 16:52:08小熊猫(314515887) 16:52:38接下来是验证你的返回结果对不对女王汉子(602783837) 16:52:41 师傅,你这里的属于步骤呢?女王汉子(602783837) 16:52:45 在下面?小熊猫(314515887) 16:53:07小熊猫(314515887) 16:53:13展开每个测试用例小熊猫(314515887) 16:53:16里面有步骤小熊猫(314515887) 16:53:22属性步骤不是必须的小熊猫(314515887) 16:53:28根据你的用例来决定豆豆(491293011) 16:56:01property 里面可以加两行mycode参数不?小熊猫(314515887) 16:56:19可以加多个参数,但是同名不行女王汉子(602783837) 16:56:39师傅,怎么验证?小熊猫(314515887) 16:56:45我只用过这几个步骤小熊猫(314515887) 16:57:38可以脚本验证也可以直接用assertions豆豆(491293011) 16:57:40这样可以么小熊猫(314515887) 16:58:19可以啊,你输入什么值,后面就取什么值/bangbangt快乐(1229151461) 17:43:57 怎么知道从哪个方法开始入手啊小熊猫(314515887) 17:44:20方法入手小熊猫(314515887) 17:44:26你都试试小熊猫(314515887) 17:45:05小熊猫(314515887) 17:45:09这个不是挺好的吗这俩配合着使用小熊猫(314515887) 17:46:41你可以写个脚本,遍历第一个方法的返回值,把各个省份代码加到一个list里,然后分别填入这些个省份代码,去对比返回结果,对不对/bangbangt快乐(1229151461) 17:46:58/bangbangt快乐(1229151461) 17:47:06自己写脚本,师傅,我不行的小熊猫(314515887) 17:47:12那重来小熊猫(314515887) 17:47:46你加一个属性步骤,里面有好多个变量,每个变量代表一个省份然后下面加上很多的这个request,每个request取一个省份的值,你先运行这个方法得到这些值测试用例里面添加一个属性步骤,里面加上很多的变量/bangbangt快乐(1229151461) 17:48:04还有个问题/bangbangt快乐(1229151461) 17:48:05 师傅/bangbangt快乐(1229151461) 17:48:09 哪个测试用例小熊猫(314515887) 17:53:45这是方法1,创建一个新的测试套,测试套是空的小熊猫(314515887) 17:54:12方法2,直接右击你要测试的那个方法的request,创建测试用例小熊猫(314515887) 17:54:57你选哪个/bangbangt快乐(1229151461) 17:55:05第一个小熊猫(314515887) 17:55:16行小熊猫(314515887) 17:55:20那就按第一个来/bangbangt快乐(1229151461) 17:55:32小熊猫(314515887) 17:56:54测试步骤是空的小熊猫(314515887) 17:57:32你要测getSupportCityString接口小熊猫(314515887) 17:57:48可以先加上属性步骤小熊猫(314515887) 17:58:58 加三个变量小熊猫(314515887) 17:59:08 黑龙江,辽宁,吉林小熊猫(314515887) 18:03:17小熊猫(314515887) 18:04:08确定小熊猫(314515887) 18:05:42小熊猫(314515887) 18:07:48你会验证吗小熊猫(314515887) 18:08:34 找到第一个request小熊猫(314515887) 18:08:38 黑龙江哪个小熊猫(314515887) 18:08:41 那个点这个小熊猫(314515887) 18:10:02 Add。
soapui调用webservice接口方法SoapUI调用webservice接口方法介绍SoapUI是一款功能强大的开源工具,用于测试、呈现和模拟webservice接口。
它提供了多种方法来调用webservice接口,以便进行接口测试和验证。
本文将详细介绍各种方法。
1. 使用SOAP请求•打开SoapUI并创建一个新项目。
•在项目中创建一个新的测试套件。
•在测试套件中创建一个新的测试用例。
•在测试用例中创建一个新的测试步骤,选择SOAP请求。
•在SOAP请求中输入webservice的地址和方法名。
•在请求的正文中输入参数和值。
•点击运行按钮执行测试。
2. 使用WSDL文档•打开SoapUI并创建一个新项目。
•在项目中导入webservice的WSDL文档。
•在WSDL文档中找到需要调用的方法。
•右键点击方法并选择生成测试请求。
•在生成的测试请求中设置参数和值,然后执行测试。
3. 使用Groovy脚本•打开SoapUI并创建一个新项目。
•在项目中创建一个新的测试套件。
•在测试套件中创建一个新的测试用例。
•在测试用例中创建一个新的测试步骤,选择Groovy脚本。
•在Groovy脚本中编写调用webservice的代码。
•点击运行按钮执行测试。
4. 使用命令行工具•下载并安装SoapUI的命令行工具。
•打开命令行终端。
•输入命令行指令,包括webservice地址、方法名、参数和值。
•执行指令以调用webservice接口。
5. 使用插件工具•在SoapUI中安装相应的插件工具,比如Groovy插件。
•在测试步骤中选择插件工具。
•配置插件工具的参数和值。
•执行测试以调用webservice接口。
以上是调用webservice接口的一些常用方法,可以根据具体需求选择适合的方法。
希望这篇文章对你有所帮助!6. 使用数据驱动的方式•打开SoapUI并创建一个新项目。
•在项目中创建一个新的测试套件。
•在测试套件中创建一个新的测试用例。
SOAPUI入门教程近期发现一个测试web service(WS)的工具–SOAPUI,这是一款很专业的WS测试软件,能共提供全方位的WS功能测试和性能测试,上手比较快,使用方便。
软件整体结构设计的很合理,明晰。
让人一看就很容易上手。
以下是翻译自其官方站的入门文档,有兴趣的同学们可以参考下。
官方站地址:/Getting Started with soapUI•以下你们将看到一个包含测试用例和请求的soapUi工程的创建过程。
测试使用的是Amazon开放web service接口。
虽然soapUI上手比较的容易,但是我们依旧需要对一下的知识有较全面的了解以便掌握soapUI的大部分功能的使用能力。
包括:•WSDL-基本的概念(services, ports, bindings, port types)以及相关的xml-schema•SOAP-基本概念,与WSDL的关联关系,不同的编码(soap-encoded/literal)以及消息类型(document/rpc)•XML相关知识- XPath, XML Schema, namespaces等注:参考网站—W3POPInstall and Run soapUIInstall and Run soapUI in one of the following ways:可以在此网站的top page,下载到最新的使用Java WebStart的版本通过SourceForge soapUI Web Site下载并使用windows installer(包含必须的1.6 JRE)安装。
当你不能确定系统的java环境或者你想使用开始菜单的图标启动和卸载的时候,可以使用windows installer。
SourceForge在下载binary版本(例如soapui-1.5-bin.zip),然后解压并手动安装并运行bin\soapui.bat (or .sh) 脚本 (需要path中配置java环境).无论如何,soapUI要使用一个空的workspace来启动并展示在你面前The Getting Started guideYour first soapUI Project步骤:创建一个测试工程添加一个WSDL的web service描述文件创建一些request创建或导入一个Web Service testing project在左边的导航栏里面右键单击Projects根节点将会提示你选择的项目,如图如果你下载的是桌面版,在根目录下会有一个sample工程,选择import project并导入此工程以便浏览Add a WSDL to create tests from现在你拥有了一个可以添加interfaces(i.e. Web Service PortTypes)到其中的工程了在项目节点上右键单击并选择”Add WSDL from URL”获得提示并填入Interfaces WSDL; 回车/AWSECommerceService/AWSECommerceService.wsdl 就添加了amazon的web service,然后选择OK。
SoapUI使用说明1 SoapUI 介绍由于 Web 服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在 SoapUI 等工具出现之前,测试人员不得不自己编写程序来测试它,这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。
SoapUI 的出现极大的改变了这一局面。
作为一个开源的工具,SoapUI 强大的功能、易用的界面,吸引了很多用户。
用户可以在 SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节,极大的减轻了工作量。
SoapUI 支持多样的测试,例如功能测试,性能测试,回归测试等。
到目前为止 SoapUI 的下载量已经超过了100万次,成为了Web服务测试标准和领先的 Web 服务测试工具。
它不仅仅可以测试基于SOAP的Web 服务,也可以测试REST风格的 Web服务,后者也是本文介绍的重点。
SoapUI基于Java开发,支持多个平台,安装非常简单。
读者可以到 SoapUI2 SoapUI使用过程创建/导入工程安装并运行SoapUI之后,你就可以创建第一个SoapUI工程了。
程序第一次打开时,左侧导航面板上,自动有一个空的Projects工程。
右击左侧导航面板中的工作空间节点“Projects”,选择“New SoapUI Project”。
图表 2-1页面弹出“New SoapUI Project”TAB页,填入Project Name,Initial WSDL/WADL可填入URL地址或直接导入WSDL文件,导入文件后,如下图所示:图表 2-2默认选上:Create sample requests for all operations(说明:为每个接口创建一个请求的例子)Creates a TestSuite for the imported WSDL or WADL(说明:为WSDL或WADL创建一个测试包)点击OK按钮后,页面弹出保存工程的提示,以project名称+“- ”的形式进行命名,因此上述工程在保存时页面给出默认命名为,直接点击保存即可。
保存成功后,页面继续弹出“Generate TestSuite”TAB页:图表 2-3选择:Single TestCase with one Request for each Operation(说明:为每个接口的请求都创建一个测试用例)Create new empty requests(说明:创建一个空的请求)Operations中选择要测试的WS接口方法,如果一个WS有多个方法,Operations中会列出所有方法,只须选择要测试的方法即可,上图,去掉了test10、test2等接口的测试。
最后勾选上Generates a default LoadTest for each created TestCase(说明:为每个创建好的测试用例生成一个默认的负载测试)选择完毕后,点击OK按钮,进入测试用例命名页面,命名完毕后,确定。
图表 2-4在测试用例编写完毕后,可使用ctrl+s键,保存当前的工程。
如果要导入其他人的工程,可通过选择“Import Project”,找到,选中后即可导入工程。
创建测试用例上面操作已经增加了test1的Web服务,接下来可以执行请求了。
在上面增加接口的时候,已经根据WSDL的Schema定义为每一个操作创建了默认请求。
图表 2-5在RequestServiceSoapBinding节点下展开了WS服务中所有的方法,而我们的测试包test1_file_TestSuite中根据“创建、导入工程”的第4步,而仅创建了我们要测试的方法的测试用例。
现在将以测试test1方法为例,来介绍用例的创建过程。
按照下图所示,打下测试包下的“test1 TestCase”,在展开的“Test Steps”下选择“test1”,双击打开。
图表 2-6双击“test1”后,在SoapUI的右侧会出现请求编辑器:图表 2-7请求编辑器分为三部分:1.顶部的工具栏,包含一组请求相关的动作、操作2.左边是请求区域3.右边是响应区域SoapUI默认生成的请求中,””表示需要被替换的内容。
根据需要,可以替换或者删除掉这些值。
本接口需要一个名为id的入参,可在请求区域找到如下内容:<id xsi:type="soapenc:string"通过按下工具栏最左边的按钮(绿色箭头)来发送本次请求,请求会在后台执行,响应内容会出现在编辑器的右边,test1方法没有任何逻辑,任意的入参均不会影响到输出结果,出参为一个一维数组,第一个值为123,第二个值为456。
根据上述返回的结果报文后,可看到接口已被正确的调用,为在测试中不用人为地进行接口功能是否正确的判断,因此加入断言Assertions,可由程序直接对返回结果进行判断。
点击下图左上角的增加断言按钮:图表 2-8会弹出“Select Assertion”对话框,通过下拉框选择“Contains”的断言,确定后弹出如下对话框,在Content中填入内容,此处是表示返回的结果报文里应该包含的字段,根据我们test1接口的返回值,填写如下,点击“OK”,插入断言完毕,程序会在运行用例时,自动帮我们校验返回的结果报文是否包含“123”内容。
图表 2-9说明:“Test Steps”中可创建多个测试用例,组成一个测试用例集,在运行该test steps 时,会根据用例的顺序从上到下将用例进行一次测试,将上一用例的输出作为下一用例的输入再组织相应的用例,此处待进一步研究。
创建负载测试性能测试一般使用loadrunner,或者自己写的调用客户端进行测试。
loadrunner是全面的性能测试工具,对一般开发人员来说太重,并且需要license。
自己写调用的客户端则测试的统计数据也需要写程序处理,比较麻烦。
这里推荐使用SoapUI,SOAPUI可以直接根据WSDL生成SOAP数据包,手工填入参数后可以直接进行性能测试。
在创建完测试用例后,本工程的负载脚本也由在最初创建好工程时,已经默认创建完毕,在此可直接打开使用,如下,可直接点开Load Tests节点,节点下包含名称为“LoadTest1”的负载脚本,双击打开。
图表 2-10双击打开后,页面如下显示,设置过程参考如下,场景为100用户并发,持续运行10分钟,没有思考时间。
相应的SoapUI可设置Threads=100,Test Delay=0,Limit=600,后面的下拉框选择Seconds,表示600秒。
设置完毕后,点击左上方的绿色箭头,程序开始进行负载测试。
图表 2-11负载测试过程中,右上方会有进度条显示测试的进度情况,SoapUI提供了2个图表和一个简要列表的形式列出了测试过程中相关数据的监控,如下图,下图为简要列表形式提供的数据:图表 2-12点击上方红色方框框住的按钮,会弹出下方的监控图表,图中只有曲线,没有任何数据说明,只能看到变化的情况,由于无相应的刻度,而无法直观地看出数据大小:图表 2-13SoapUI还提供了另一个图表,此图表与上与图表类似,不过仅能显示线程数与另一统计内容的曲线变化情况,另一统计内容可通过下图红色方框里的“select statistic”进行选择,如下:图表 2-143与LoadRunner的比较使用LoadRunner提供的Webservice协议进行相同接口的测试。
不加校验的脚本(脚本名称:LR_1 )如下://@oolong 2/2/2010Action(){lr_start_transaction("here_start");web_service_call( "StepName=test1_101","ResponseParam=response","WSDL=C:/Documents and Settings/Owner/桌面/","UseWSDLCopy=1",BEGIN_ARGUMENTS,"xml:sss=<sss><string></string></sss>","id=aff",END_ARGUMENTS,BEGIN_RESULT,END_RESULT,LAST);lr_end_transaction("here_start", LR_AUTO);return 0;}加了校验的脚本(脚本名称:LR_2 )如下,下面的脚本提供了对返回结果的一个校验,类似SoapUI里提供的断言:Action(){char com[] = "123";lr_start_transaction("here_start");web_service_call( "StepName=test1_101","ResponseParam=response","WSDL=C:/Documents and Settings/Owner/桌面/","UseWSDLCopy=1",BEGIN_ARGUMENTS,"xml:sss=<sss><string></string></sss>","id=aff",END_ARGUMENTS,BEGIN_RESULT,"test1Return[1]=Param_result",END_RESULT,LAST);if(strcmp(lr_eval_string("{Param_result}"),com)==0){lr_end_transaction("here_start", LR_AUTO);lr_vuser_status_message("成功");}else{lr_end_transaction("here_start", LR_FAIL);lr_error_message(lr_eval_string("{Param_result}"));}return 0;}场景与SoapUI的场景一致:100用户并发,持续运行10分钟,没有思考时间。
对LR_2脚本进行性能测试后,发现响应时间比使用SoapUI进行测试的响应时间来的大,因此把校验过程注释掉,使用LR_1,又进行了一次负载测试。