您的当前位置:首页WebService性能测试指导

WebService性能测试指导

来源:飒榕旅游知识分享网
1 kylinPET实现WebService性能测试

1.1 kylinPET性能测试工具下载链接

可到kylinPET的官方网站:www.kylinpet.com下载

1.2 高效创建脚本

1.2.1 导入WSDL方式

通过点击WSDL方式。

按钮,在打开的窗口输入WSDL文件路径或URL加载解析

1.2.2 录制方式

提供三种录制方式创建业务脚本,大大减少手工操作脚本,高效、精确创建业务模拟脚本。

三种录制方式参照帮助文档《kylinPET三种录制方式介绍.doc》

1.2.3 导入HTTP或XML方式

在请求节点界面,点击

式,但该方式只支持单个请求的导入。

按钮导入HTTP报文文件或XML文件方

1.3 IP欺骗

每个HTTP用户一个虚拟IP,支持系统虚拟IP(需要在操作系统配置多IP)或工具虚拟IP(不需要在操作系统配置IP)。配置路由方法参照《kylinPET 三种典型组网介绍IP欺骗与路由设置》文档。

1.4 支持TLS/SSL(HTTPS)

支持TLS/SSL,支持单向与双向认证。

1.5 支持调用外部JAVA类

通过调用外部JAVA类,实现私有算法(加密、解密)或工具无法完成的功能。需要用户自己实现处理逻辑的JAVA代码,实现参照《kylinPET 调用外部java类实现扩展》文档。

2 WebService业务介绍

通过该例子,简单介绍如何使用工具完成WebService业务测试。操作步骤:

2.1 Scripter创建业务流程脚本

2.1.1 新建业务脚本

点击“文件” -> “新建”或者“工具栏”的“新建”

按钮。

2.1.2 三种方式创建脚本的请求消息

1) 导入WSDL方式

点击“工具栏” -> (也可以直接点击

按钮,在选项框输入WSDL文件的路径或URL

按钮导入本地WSDL文件),然后点击“导入”按钮

选择需要测试的接口(方法),然后点击“确定按钮”

生成对应的HTTP请求

注意:

1、 通过导入WSDL方式生成脚本简单易用

2、 通过导入WSDL方式创建的请求消息,提供了接口返回值列表,

以soap@开头,表示该接口的返回参数。通过它们可以从响应消息获取返回参数值,以便作为后面请求的参数值。

2) 录制方式

点击“工具” -> “录制”或者“工具栏”的“录制” 按钮,然后,在弹

出的录制配置窗口选择录制方式为“Cap File”(抓包文件),过滤规则。

注意:

1、 抓包文件保存时不能只过滤HTTP报文,需要把整个TCP交互过程都保存到文件(SYN --> SYN_ACK --> ACK) 。可通过IP与端口过滤保存业务交互过程

3) 导入HTTP或XML方式

在左边“流程管理”单击右键弹出菜单,然后选择“创建为它的孩子”添加一个新的请求节点

单击URL文本框右边的“导入消息”按钮,在弹出的文件对话框选择HTTP报文文件或XML文件(soap格式)

2.2 设置参数值

XML内容里的问号“?”即需要输入的参数值。设置参数值方式有两种:XML视图方式与Tree视图方式。

2.2.1 XML视图设置参数值

直接在文本框修改“?”为实际参数值,根据参数上面的注释填入正确的类型值。

说明:

1、 红色字体表示格式错误或需要修改 2、 蓝色字体为参数值 3、 灰色字体提示参数的类型 4、 粉红色字体为XML节点属性名 5、 浅蓝色字体为XML节点属性值

6、 XML内容在UI界面是排版方式,方便查看;但执行代理器(Load Agent)在发送HTTP

请求消息前将删除注释(即)与排版的空格、回车。

2.2.2 Tree视图设置参数值

如果参数值为,在XML视图直接输入是错误的,需要将“<”符号转换为“<”。而Tree视图允许直接输入参数值,转换为XML时自动将“<”符号转换为“<”;另外,Tree视图可直观表示Soap结构。

双击参数值节点“Val”,在弹出的窗口输入参数值

此时,XML视图内容为

说明: 1、 2、 3、

图标表示方法名(即接口名) 图标表示接口的第一级参数 图标表示需要设置的参数值,

节点可以双击弹出值设置窗口

2.2.3 格式化XML视图内容

如果XML视图的soap结构没有排版,可通过点击工具栏的“格式化”按钮对内容进行排版

格式化后

说明: 1.

界面进行排版目的是方便阅读,但执行代理器(Load Agent)将删除XML注释与排版再发送,减少报文字节数。

2.2.4 缩放XML视图

双击右边的“XML 视图”或“Tree视图”可以放大或缩小视图在界面的大小。

双击上图的1、2、3区域可以缩放“消息体”在界面的大小(即隐藏或显示头域区域)。

2.3 参数化(可变参数值)

2.3.1 提取参数

1) 替换某个字符串值为参数

点击“编辑” -> “字符串替换为参数”或者“工具栏”的出窗口输入参数名(或者直接手动修改值为参数)

按钮,弹

变为

2.3.2 参数列表

业务测试时,需要每个用户使用不同的参数值,则可通过参数列表设置。

点击“工具” -> “参数列表”或者“工具栏”的

按钮。

参数arg0为顺序类型,前缀为abcd,后面按顺序递增

说明:

参数列表提供从文件方式导入参数,文件格式如下: 列名1列名2列名3 列值1列值2列值3

2.4 添加SOAPAction头域

通过WSDL或导入消息方式创建的请求一般都存在SOAPAction头域,如果没有该头域,可手动为所有请求节点添加SOAPAction头域。

点击“编辑” -> “头域”或者“工具栏”的域值。

按钮,弹出窗口输入头

说明:

该步骤只是为了说明工具提供的功能。如果只对某个HTTP请求的添加,可以手动修改。

2.5 判断响应消息是否正确

如果需要检查收到的响应消息是否期待接收的正确消息,需要配置。 有些HTTP响应单从响应码无法判断是否是正确的消息,需要检查响应消息的内容。

2.6 关联参数(从响应消息提取内容)

业务交互往往需要从响应消息里提取服务器的会话标识或参数值,如webService接口的返回值或者Cookie。工具提供了几种提取方式。 1) 工具自动方式

以soap@开头,表示该接口的返回参数。通过它们可以从响应消息获取返回参数值,以便作为后面请求的参数值。工具自动从响应消息提取该参数的值,后面请求通过{CorrelationID}即可引用该参数值。

其他参数是HTTP协议常用的,工具内置了提取方法。如Cookie

说明:

只有通过按钮导入WSDL创建的请求消息才存在以soap@开头的参数。其他方式如录制或导入消息都不存在这些参数。

2) 左右方式

通过查找左边文本和右边文本,然后提取中间部分内容。

如果没有soap@自动获取参数值,也可以通过左右方式获取参数值,如左边文本值为“”,右边文本值为“”,则可以获取中间的字符串为参数值。 3) 自定义方式

支持正则表达式匹配 支持匹配次数

支持查找成功后,再进行查找;类型有:在匹配成功的内容左边进行再次匹配,在匹配成功的内容里进行再次匹配,在匹配成功的内容右边进行再次匹配。

2.7 查看请求消息

通过点击“查看消息”按钮,弹出该HTTP消息的结构窗口。

2.8 Scripter保存脚本

点击“文件” -> “保存”或者“工具栏”的test.spet

按钮。如脚本保存为

2.9 Scripter调试(回放)脚本

点击 “工具栏”的

按钮运行脚本,通过日志调试脚本是否正确。虚拟IP

的脚本调试可通过Controller的“调试脚本”实现场景调试。

1) 按钮介绍

  

为运行按钮,点击运行脚本进行调试 为停止按钮,点击停止运行脚本

为导出日志按钮,如果日志太多,需要查找或过滤(如过滤Error或Excepiton关键字找出错误日志),可导出到文件,然后通过UE或NotePad++等软件分享。

2) 红色代表错误或异常

日志内容包含:“Error:”或“Exception:”关键字 3) 黑色为业务消息日志

如发送日志或响应日志 4) 蓝色为分隔信息或统计信息

 runTime:表示整个脚本运行时间  requests:请求(发送)消息个数

 responses:响应(接收)消息个数  throughput:吞吐量

 Transaction:脚本中事务统计  response code:响应码统计

2.10 Controller创建测试场景

2.10.1 创建执行代理器

点击“工具” -> “执行代理器”或者“工具栏”的

按钮,添加执行代理器

如果是远端执行代理器,需要添加新的代理器,IP与地址为远端执行代理器。

2.10.2 创建新的测试场景

点击“工具栏”的“新建”按钮

,创建一个新的测试场景。默认测试场景的

任务名为task,绑定本地执行代理器local

2.10.3 创建任务

默认新场景已经存在task任务,并绑定本地执行代理器,因此不需要手动创建。如果手动创建,如下操作:

选择Controller的“设计”页面,左边的“任务管理”树,单击右键选择“新建任务”

新建时没有配置,因此显示图标

,表示配置有误

2.10.4 任务添加执行代理器

默认新场景已经绑定本地执行代理器,因此不需要手动绑定。如果需要绑定远程执行代理器,操作如下:

选择任务节点,单击右键,选择“他的代理器”

将执行代理器“test”添加(右移)到任务“fdaf”,即表示“test”归属于任

务“fdaf”

2.10.5 设置任务对应脚本与 并发模型

点击

按钮,添加任务脚本test.spet;

然后设置任务的并发模型,通过点击“模型设置”按钮,在弹出的窗口设置模型;

2.10.6 任务关联业务脚本

2.10.7 启用虚拟IP(如果是虚拟IP场景)

点击“设置” -> “IP欺骗”,然后选择“工具虚拟IP”

Controller界面最下面的状态栏将显示“IP欺骗:工具虚拟IP”

2.10.8 执行代理器配置(如果是虚拟IP场景)

由于选择IP欺骗,因此需要配置源IP列表,如果没有配置,显示图标设置》文档。 1) 选择网卡

,表

示配置有误。配置路由方法参照《kylinPET 三种典型组网介绍IP欺骗与路由

选择agent机器上的网卡。 2) 添加源IP列表

点击“添加”按钮

3) 配置IP欺骗报文目的MAC

点击“高级设置”按钮

4) 合法配置界面

2.11 连接执行代理器

2.11.1 启动执行代理器

1) windows操作系统上直接双击agent.bat运行,或命令窗口输入

agent.bat;

2) 如果是本地执行代理器,可通过右键菜单选择“启动代理器”进行启动

2.11.2 连接执行代理器

确保执行的代理器处于连接状态选择“连接”进行连接。

,如果代理器处于断开状态,右键弹出菜单

2.12 Controller调试测试场景

在 Controller的“控制”页面点击“调试配置”运行测试场景,则Controller会通知连接的每一个“执行代理器”执行一个用户,并将执行的过程日志返回给Controller。用户可通过日志判断配置是否正确,如果错误,可根据错误信息调整配置。

上图是运行的结果,日志显示流程错误。期待接收302响应却收到200响应。

查看发送的POST消息发现用户名还是参数,没被替换;因此,检查脚本的参数列表,发现没配置或配置错误,并更改。

2.13 Controller执行测试场景与查看统计图表、日志

调试配置保证配置正确后,点击“开始”运行测试场景。

2.13.1 虚拟用户统计表

图的1部分为任务运行的统计信息,包括成功数、失败数、每秒并发个数。

2.13.2 监控项统计树

图的2部分为业务脚本监控项统计信息,包括每秒请求数、事务统计、服务器资源统计等;

双击树节点查看对应监控项的曲线图表。

2.13.3 曲线图表

图的3部分为显示监控项的运行情况,每秒一个数据值,构成曲线。每次只能显示一个监控项,可通过双击右边监控树节点来查看对应监控项的曲线图表。另外,可通过“切换”按钮,切换到平均曲线图表,每1分钟

(或5分钟、10分钟)一个数据值,该值为当前1分钟(或5分钟、10分钟)的数据的平均值。

2.13.4 监控项实时统计表

图的4部分为监控项的统计信息,包括最大值、最小值、平均值、当前时刻统计值。每次只能显示一个监控项,可通过双击右边监控树节点来切监控项。

2.13.5 阈值告警

图的5部分红色灯告警,表示超过阈值。只是由于为每秒请求数设置了阈值,范围为10-100,而运行过程出现接近0的统计值,超过阈值范围。

2.13.6 日志

运行显示有多个用户失败,通过日志可判断失败原因。另外,日志中出现“common threshold value=1”的日志,是由于超过阈值打印告警日志。

2.14 Analysis分析运行结果

运行结束后,点击“工具” -> “Analysis”或者“工具栏”的

按钮,打开

Analysis界面分析测试结果。界面与Controller基本类型,但提供更强大的分析功能。包括放大、缩小(还原)、过滤、对比、合并,产生HTML报告等功能。

2.14.1 报告汇总

进入第一个界面将显示“报告”页面,内容显示运行统计信息、整个脚本事务统计信息、自定义事务统计信息,响应码个数统计。

2.14.2 查看图表曲线

双击监控树节点查看对应监控项的统计曲线与下面的统计表格。

最下面状态栏为当前图表曲线的信息,包括:开始时间、结束时间、时间范围、曲线点个数、曲线Y轴最小值、曲线Y轴最大值、运行时间、错误日志数。

双击统计表格对应的行将显示曲线的详细信息。

2.14.3 图表操作

1) 放大曲线

当运行时间比较大时,如1个小时(3600秒,对应3600个统计点),工具自动控制显示曲线的点数(曲线点少于200个),而不是每个统计值显示一个点(如果每秒一个点则曲线显示3600个点,将挨挤,不美观),工具自动

将多个点汇总为一个点(可以是平均值、最大值、最小值、或由某个点代表这些点)。

假设,10秒显示一个点,则在图表曲线无法查看到1-9秒的数据点,为了查看某段更小时间范围的数据,可通过在图表拖动鼠标来选中对应的时间范围,鼠标拖动方向为右上或右下。如上图选择了8秒到19秒的范围后,图表曲线只显示时间为8到19的范围,如下:

2) 还原曲线

拖拉鼠标放大时间范围查看图表后,如果需要还原最初的图表曲线(即双击监控指标节点显示的曲线),可在图表拖动鼠标实现,鼠标拖动方向为左上或左下,即方向向左。

3) 曲线过滤

通过过滤实现只显示特定数据点曲线。如可以只显示超过阈值的数据点,然后查看曲线的点数(相当于统计超过阈值的数据点个数),在哪个时间点频率高。

如对“HTTP hit/s”监控项过滤统计值大于25的点: A. 图表曲线上“右键” -> “过滤”

B. 过滤窗口输入过滤值

C. 过滤曲线

只显示满足过滤条件的点。

2.14.4 合并图表曲线

默认每个监控项独自在图表显示曲线,如果需要对两个监控项进行对比,则可以通过合并功能实现。如“HTTP hit/s”与“CPU”合并对比分析。 1) 选中监控树节点,然后“右键” -> “合并图表”

2) 设置第二个图表为CPU曲线

3) 生成合并监控树节点

4) 双击显示合并图

5) “右键” -> “比较图表”

可通过左边的刻度条移动曲线进行对比分析。

2.14.5 日志分析

日志记录了错误日志、告警日志,常用于分析定位问题。有时只通过监控指标曲线只能查看失败数量、资源值(如CPU、内存),而无法判断问题原因,但通过与日志关联(过滤特定的日志,如某段时间的日志),可有效分析定为问题。如:发现某时刻CPU占用高,而通过过滤该时刻的日志,发现有很多错误日志,日志内容为500响应,且内存带了服务器的失败原因。 1) 日志界面

显示总日志数,而状态栏显示错误日志个数2) 查看所有日志

默认每一页只显示100条日志,可通过翻页或跳转查看其它页的日志内容。 点击“所有日志”按钮

3) 过滤日志

点击“过滤”按钮

支持时间范围过滤、Controller或某个Agent过滤、日志级别、虚拟用户、日志内容;可以为它们的组合过滤。 4) 导出日志

可以将表格的日志导出到excel

2.15 Analysis产生报告

2.15.1 报告设置

点击“报告” -> “设置”或者“工具栏”的

按钮弹出设置窗口。报告设

置生效后,图表界面曲线会对应改变为设置方式。

曲线时间范围(可以只显示某段时间的曲线)、多少秒一个点(某认由工具自动根据合适的点数,让曲线不紧凑)、点类型(曲线一个点表示一段时间时是它们的平均、或最大、最小)、表格定义任务与Agent是否都产生统计曲线(如果有多个任务或多个Agent,都会显示在表格)。

只显示5秒到16秒的范围。

2.15.2 生成HTML报告

点击“报告” -> “HTML报告”或者“工具栏”的

按钮。

产生的报告将保存到测试结果目录下,目录名为report。如:

E:\\kylinPET\\workspace\\ResultData\est_2012_03_11_20_59_02\\report

2.16 查看report.html报告

双击“report.html”文件打开报告

2.16.1 报告汇总

2.16.2 查看统计图表

2.16.3 查看曲线详细信息

通过点击“Clear”对应的行;如果隐藏则点击“Clear”

3 HTTPS配置介绍

3.1 Scripter脚本部分

3.1.1 当HTTP与HTTPS并存时

1) 对HTTPS请求配置对应端口与HTTPS选项为Yes

2) 设置窗口界面HTTPS项选择“自定义”

说明:

当HTTP与HTTPS并存时,每个HTTPS请求节点都需要设置

3.1.2 当所有请求都为HTTPS时

只需要在设置窗口界面HTTPS项选择“启用”,避免大量为大量HTTP请求节点设置HTTPS为Yes

3.2 Controller设置

3.2.1 TLS配置

默认不需要配置,工具默认已经配置了TLS作为客户端与服务端配置项,如下图:

说明:

1、 执行代理器(Load Agent)创建TLS会话中不需要检测服务器证书,因此不需要提供服务

证书。 2、 如果TLS为双向认证,则在“客户端证书”里添加对应的证书名与密钥,且要求添加的证

书文件已经在执行代理器(Load Agent)的certs目录存在 3、 TLS或SSL的证书,包括服务器证书、客户端证书、信任证书都需要放到执行代理器(Load Agent)的certs目录下。

3.2.2 自动添加了TCP与SSL的连接数监控项

4 提取响应内容给下一个请求

提取请求的返回值,作为下一个请求的输入参数。参照“2.3 参数化(可变参数值)”

5 私有算法加密/解密

下面列举几个工具无法支持的场景,需要用户实现扩展类: 1) webService调用的接口中,存在加密的参数;

2) webService调用接口的返回参数中包括加密的参数,需要进行解密

解决方法,需要用户在界面勾选“调用外部”,然后实现外部java类。详细介绍参照《kylinPET 调用外部java类实现扩展》文档

6 多业务(协议)组合

WebService与WEB业务组合,或者与其他协议组合,由WebService调用接口得到返回值,作为其他协议的输入参数。多协议组合操作介绍参照《kylinPET 多协议组合》文档。

7 迭代循环运行用户

为保持服务器每秒处理一定的并发用户数,可通过设置“运行次数”为“一直运行,结束后又重新开始运行”方式,使用户一直处于运行中,保持一定的在线用户数。

8 其他

8.1 通过Monitor Agent监控服务器资源

业务性能测试时,通常还需要记录业务服务器的资源数据,如CPU、内存、线程数、I/O、吞吐量,将它们与运行日志、或指标数据进行曲线对比,则可展示某段时间的资源指标值、普通指标值,这样可辅助定位性能问题。如,用户失败数量在某时刻很高,是否由于CPU占用太高导致。

操作方式见《kylinPET HTTP(WEB)业务使用指导》文档的“2.4.7 创建监控

资源代理器”。

8.2 通过“阈值”设置告警或停止

业务性能测试时,通常还需要记录超过阈值的信息,如CPU超过60%告警通知、事务时间超过某个值时告警通知、失败率超过多少时停止测试。

通过监控指标项设置阈值告警或停止测试场景,操作方式见《kylinPET HTTP(WEB)业务使用指导》文档的“2.4.8设置阈值”。

9 与SoapUI结合

如果有些wsdl文件工具无法解析,而SoapUI可以解析,可以把SoapUI解析后的结果复制粘贴过来。

因篇幅问题不能全部显示,请点此查看更多更全内容