基于WebService的性能测试脚本开发

简介:

基于WebService的性能测试脚本开发

  WebService是一种构架应用程序的普遍模型,是系统对外的接口。可以在任何支持网络通信的操作系统中实施运行。WebService的主要目标就是实现应用间的跨平台的互操作。Web Service可以使系统中孤立的站点之间能够相互通信、共享资源而提出的一种接口。Web Service所常用的协议标准,包含如HTTP、XML、SOAP、WSDL等,选择WebService协议进行测试,可以使服务的客户端与系统提供的服务本身之间进行紧密耦合,达到测试的要求。

  本文以一个基于webservice的文件下载功能服务为例,运用Loadrunner 11 对其进行性能测试脚本开发和调试,具体操作流程如下所示:

  首先,选择WebService协议进行脚本录制。

  点击“Manage Service”按钮,然后选择“Import”。在Importservicre中的URL导入一个WSDL服务的文本http://wsefrst.paerswft.com/store-01.wsdl,点击“Import”。其中,WSDL描述WebService的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述,也就是描述与目录中列出的WebService进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

  因此在Loadrunner在WebService虚拟用户协议中也支持两种测试方式:一种是通过“Add Service Call”的方式,此功能导入的是WSDL文件;一种是通过Import SOAP的方式,Import SOAP的方式需要导入定义好的XML请求文件。在本文中应用前一种导入WSDL文件的方式。



  下面对被测服务进行参数化,点击“Add Service Call”选择调用接口,对WSDL文件中的参数,进行参数化赋值和选择相应动作。如下图,在选择相应的测试机service后,这里选择“down”下载这个动作,并进行参数化赋值。关于参数化赋值方法,可以勾选住“Include argument in”在“Vaule”输入框中进行常量赋值和变量参数化,变量参数化点击蓝色“ABC”即可,同时可以生成运行脚本,本文针对guid进行参数化,生成2个脚本,一个是guid=111的常量参数化,一个是guid={guid}的变量参数化操作。对guid变量参数化,参数策略为select next row:Unique,Update value on:Each iteration。其中, GUID即Globally Unique Identifier(全球唯一标识符)。GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。

  具体脚本如下所示:

Action()
{
         web_service_call( "StepName=down_101",
                   "SOAPMethod=T9EsbServiceService|T9EsbService|down",
                   "ResponseParam=response",
                   "Service=T9EsbServiceService",
                   "ExpectedResponse=SoapResult",
                   "Snapshot=t1344414497.inf",
                   BEGIN_ARGUMENTS,
                   "guid=111",
                   END_ARGUMENTS,
                   BEGIN_RESULT,
                   END_RESULT,
                   LAST);

         web_service_call( "StepName=down_102",
                   "SOAPMethod=T9EsbServiceService|T9EsbService|down",
                   "ResponseParam=response",
                   "Service=T9EsbServiceService",
                   "ExpectedResponse=SoapResult",
                   "Snapshot=t1344414875.inf",
                   BEGIN_ARGUMENTS,
                   "guid={guid}",
                   END_ARGUMENTS,
                   BEGIN_RESULT,
                   END_RESULT,
                   LAST);
         return 0;
}













====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
|
3月前
|
测试技术 开发者
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
|
3月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
|
3月前
|
监控 安全 测试技术
从开发到测试再到发布,全方位解析项目上线的完美路程!
从开发到测试再到发布,全方位解析项目上线的完美路程!
123 0
|
4月前
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
2月前
|
Java 测试技术 C#
什么样的自动化测试开发是合格的?
什么样的自动化测试开发是合格的?
|
8天前
|
SQL 存储 分布式计算
Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
【4月更文挑战第7天】Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】
16 0
|
15天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
1月前
|
数据采集 数据处理 开发工具
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
argparse是你的好帮手:快速编写自动化脚本、测试脚本、数据处理脚本
|
1月前
|
前端开发 Java 测试技术
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)
【2月更文挑战第14天】《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程) 前面几篇宏哥介绍了两种(java和maven)环境搭建和三大浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。
40 1
《手把手教你》系列基础篇(五)-java+ selenium自动化测试- 创建首个自动化脚本(详细教程)

热门文章

最新文章