压力测试工具UAPRUNNER的使用 - 图文 联系客服

发布时间 : 星期四 文章压力测试工具UAPRUNNER的使用 - 图文更新完毕开始阅读83024e03f242336c1eb95e9f

性能测试调研部分详见2.4节 性能测试准备部分详见2.5节 性能测试部分详见2.6~2.10节

1.4.1性能测试说明

性能测试说明 实施阶段 实施活动 实施工作内容 与客户确定测试的测试类型,测试系统范围 与客户确定测试的环境 与客户确定测试的功能点 性能测试调研 前期测试活动调研 确定测试的并发人数及未来人数增长量 与客户确定测试的基础数据的准备 与客户确定当前业务量及未来的增长量 调研客户对测试功能点的响应时间需求 设计测试模型 设计测试策略 确定监控工具及方式 性能测试方案设计 确定性能指标 制定性能测试方案V1.0 讨论方案 修订性能测试方案V2.0 性能测试过程 被测试系统环境准备,调整 压力测试工具准备 4 0.5 1 客户是否认可方案 如果客户不认可,修改方案 准备调整测试环境 标准产品1人天环境准备 被测试功能点脚本准备 2 可以大约准备5个脚本,二开功能点1天约3个 如果是使用当前基础数据准备 2.5 环境的数据,则直接导入就行了 1 按《性能测试调研》中的调研信息设计测试方案 1 这个需要现场顾问调研,同客户按《性能测试调研》文档确定各项 《性能测试调研》 人天 人天说明 交付成果/文档 只需0.5人天,如果是需要使用脚本产生测试数据,需要脚本准备的时间加上制造数据的时间 登陆到系统上测检查被测试系统是否正常,压力测试工具是否正常 1 试下是否能正常业务操作,录制个简单的脚本验证工具是否有问题 按测试方案中的策略设置场景 0.5 1 2 2 3 性能测试 开始测试 2 4 2 3 2 测试过程中的问题记录 1 0.5 基准测试 并发测试 并发测试调优 混合测试测试 混合测试测试调优 稳定性测试 稳定性测试调优 压力测试 压力测试调优 整理测试过程中的问题 《性能问题跟踪》 《性能测试过程记录》 小计 22.5 1根据回放的场景,在场景回放 《场景回放报告》 《性能测试报告》 性能测试总结 性能测试总结 总结测试过程中遇到的问题,编写测试报告 2 报告中记录每个场景的回放情况。2编写测试报告

总计 37.5

1.5 UAPRunner 是如何实现的

轻量级部分通过录制抓取用户从浏览器访问Web 时通过当前IP 所对应的网卡的数据, 然后解析这些数据并以数据包(一次请求及相应的响应为一个数据包)的格式显示,通过选定特定的数据包,回放以实现模拟用户重新做录制时的相同操作。录制时直接捕获通

过网卡的请求数据包,获得请求的请求body 字节数组byte[]data,然后对请求数据包(主要针对 Post 方法)进行解析,判断Request 的Header 是否存在Content-Type 。

a) 如果不存在或存在且值为 application/x-www-form-urlencoded ,则对 data 进行 URLDecoder.decode()解析,解析后就是可读的param01=value01¶m02=value02 格式, 进而可以参数化,回放时将参数化后的值替换再发送请求

b) 存在但值不为application/x-www-form-urlencoded,但保留body 字节数组data,回放时直接用data 请求,这样一些特殊的如上传文件等就按录制时的内容请求 Swing 部分通过UAP 平台开放的端口(默认为5918),抓取用户与UAP 中间件(录制只支持UAP 中间件)之间的通信过程,解析抓取到的数据包并构建为对象树。一次请求和响应为两个数据包,因此录制过程中接收的数据包大部分情况下应该为偶数个。回放时重新向中间件发送包含录制对象的web service 请求。

2. 如何使用UAPRunner

2.1 基本概念

在使用UAPRunner 前,应该了解UAPRunner 的基本构成及贯穿UAPRunner 工具的一些基本概念及设计思想。

a) 工作目录,工作目录指在UAPRunner的使用过程中存放用例、用例流、场景、录制数据包、结果文件、报告文件及临时文件等,相对独立的文件夹。工作目录里存放相应的 配置信息,切换时自动加载。良好的使用方法是根据测试项目、版本等各自使用不同的工作目录,这样的好处是在不同的测试环境中切换时不用频繁的修改相关配置信息

b) 对象树,树作为一种层次感很强的载体在工具中应用,树的节点是Java 对象,通过树节点能查看到对象的各属性。如资源管理树、录制数据树等

c) 对象树节点,节点描述Java 对象中成员变量的类型及值,{}中表示的为Java 对象中成员变量的类型

d) 节点颜色,节点中Java 对象的属性变量名称为黑色,属性变量的值为蓝色

e) 拷贝,节点禁止直接编辑,但可以通过选择任意节点后Ctrl+C 拷贝节点的值。所有表体也支持选择Ctrl+C 拷贝,拷贝后可直接粘于Excel 表格。这对于操作者想获得所见的文本值是很重要的,避免手动去敲

f) 右键菜单,对象树中存在好多特殊的节点,而不同的节点往往又具有不同的操作,操作均通过右键菜单列出。工具会根据所选节点的种类及所选节点的个数(单选、多选,多 选必须是选择同一类型的多个节点)弹出不同的菜单

g) 虚拟用户,一个虚拟用户指模拟真实操作中的一个通过浏览器完成某些业务操作的使用者。UAPRunner 中一个虚拟用户为一个独立的HttpClient 对象,独立管理自己的Cookies 等,回放时对应系统中的一个线程

h) 实时保存,在UAPRunner工具中,用例、用例流、场景等配置等都以一定的数据文件格式保存在工作目录中,在使用过程中,一切的一切都遵循自动保存操作,诸如新建、 配置、修改、删除、复选框的选择、标识节点类型等等都是实时保存的,所以使用时不要担心修改未来得及保存而丢失或去找保存操作

i) 系统配置,关系系统全局的配置都将放到工具-配置 中配置,配置中包含可以修改的 配置项(能双击变成修改状态的单元格,可以直接修改后点击其它单元格生效),也包含不能修改的配置项(旨在说明系统中存在某些配置,如占用某些端口等)

j) 集群,UAPRunner 为Java 实现,而在Java 中,启动的线程数等总是有限制的,具体咋算可以百度,所以如果模拟上千成万个虚拟用户时线程数会超出限制,所以如果模拟用户过多时可采用UAPRunner 集群实现,把用户分摊到UAPRunner 客户端。集群客户端可分别设置回放地址

k) UAPRunner 客户端,用来在场景回放时分担虚拟用户的执行,工具启动时在同一jvm 中默认启动一个UAPRunner 客户端

l) 日志,工具里日志分为多个级别,在工具发布时会设定一个默认的级别,日志会在设计面板的日志里显示(最大默认200 行),同时会在UAPRunner 根目录中以文件形式完整存储。线程名为用例回放用例名-UXXX,用例流或场景回放用例流名-UXXX,如果想查看某个虚拟用户的操作,可以从日志文件中拷贝日志然后粘贴到Excel 中,筛选出某一虚拟用户的日志

m) 多语,工具支持多语,会根据操作系统的语言进行自动选择,也可以手动切换 n) 移植性,工具因为其独立的工作目录属性及启动时的配置自动修正,所以工具及创建好 的测试项目可以直接拷到其它机器直接回放

o) 快捷键(暂不支持)

p) 动态代码下载(暂不支持)

q) 端口占用,工具的正常使用时默认使用一些端口,如果这些端口之前已经被占用将导致 工具的异常,占用的端口可以通过系统配置里查看

r) 版本,UAPRunner 采用常用的版本格式V major.minor(.build),极大更新增加major,有大更新增加minor,bug 修改或小的优化时更新build 号

2.2

使用Swing 协议的前提

2.2.1 加载代码

使用Swing 协议(UAP/NC)进行任何操作(录制、回放、打开用例等)之前都需要先加载代码,加载方式有2 种,在配置界面任选一种或者两种同时加载

a) 静态代码加载:填写代码路径,将代码中external,lib,modules 文件夹下的jar 和class 全部加载到UAPRunner中(小提示:可将代码拷贝到本地,这样加载速度会大大提高,但必须保证和被测环境的代码一直保持一致)

b) 动态代码加载:在代码中打UAPRunner的补丁,使用时从应用服务器上动态发送类