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视图设置参数值
如果参数值为 双击参数值节点“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@自动获取参数值,也可以通过左右方式获取参数值,如左边文本值为“ 支持正则表达式匹配 支持匹配次数 支持查找成功后,再进行查找;类型有:在匹配成功的内容左边进行再次匹配,在匹配成功的内容里进行再次匹配,在匹配成功的内容右边进行再次匹配。 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解析后的结果复制粘贴过来。 因篇幅问题不能全部显示,请点此查看更多更全内容