测试工具的使用,参数化的策略
JMeter.LR. lr用录制和代理录制两种方式,在提供报文的情况下手写组件报文 JMeter.用代理录制和fidder抓包录制
LR分为三个模块一个Virtual写脚本,controller一个场景设置,analysis一个结构分析
JM 添加线程组,取样器,聚合报告,查看结果树
一般分为顺序,随机,唯一,每个又分为顺序,随机,唯一
UNIque once
测试流程
首先需要做需求分析确定交易范围重点是高频的,易错的风险大的这些交易,关注交易指标:TPS ART,关注交易链路是单系统的还是全链路的,关注服务器的配置,测试环境的配置不能高于生产环境
编写性能测试计划
脚本开发,强化脚本,比如参数化,动态数据做关联,检查点
服务器的监控 nmon JProfiler 关注cpu,磁盘,内存,网络
压测单基准单交易负载 混合测试 多个业务场景一起跑,交易占比比对是100% 稳定性测试跑的时间长
结果分析拐点,服务器分析,通过压测拐点找到单交易负载所需的负载
测试报告
测试工具 Jemter loadrunner
测过系统 项目中遇到过什么样的问题,怎么解决的
协议,http socket
脚本脚本怎么写,测试数据怎么查,转账,转账的账号从数据库中查出来的脱敏
项目中遇到问题解决办法,
新增的数据可以用脚本往里插入
服务器操作
Linux操作系统常用的操作命令,ll(查看当前文件夹都有哪些文件) cd(切换路径) mkdir chmod 777(创建文件) rz (上传文件)/.nmon -F 文件名.nmon -s 5 -c 60 (每5秒执行一次执行60次 生成指定文件) top
AIX 常用的操作命令
[if !supportLists]1, [endif]CPUsar命令可以使用sar命令来查看cpu的使用率
[if !supportLists]2, [endif]ps aux | head -4查看前3位占用cpu的进程
[if !supportLists]3, [endif]lsps –a命令查看pagespces的使用率
[if !supportLists]4, [endif]svmon命令可以查看物理内存的情况ibm150:[/]#svmon –G查看内存全局使用状况ibm150:[/]#svmon -Pt 3查看前三个占用内存的进
[if !supportLists]5, [endif]iostat命令主要使用iostat命令查看磁盘I/O的负载ibm150:[/]#iostat 1 2
数据库
sql在数据库中的执行计划看看有没有走索引或者是语句有问题
定位慢查询,主要手段查看sql 执行计划。 aorcale的awr 报告数据库 DBA 用户登录 SQL shell(或者直接用 Oracle 客户端打开 sql 执行窗,如 SQL Developer),执行以下 sql: SQL> exec dbms_workload_repository.create_snapshot();数据库 DBA 用户登录 SQL shell(或者直接用 Oracle 客户端打开 sql 执行窗,如 SQL Developer),执行以下 sql: SQL> exec dbms_workload_repository.create_snapshot();,是orcle 自己的工具有top事件,根据cpu 内存排序 Orcel awr 报告怎么生成怎么去看
DB2的快照这个手段
服务器的系统LINUX AIX 命令
服务器相关的命令行
步长和思考时间的区别步长是两个事务之间的时间,可以用于调整业务配比
思考时间是为了模拟用户的等待时间
Sesisson会话保持,存在服务器端的
Cockiss存在本地的
Token :键值
大部分问题出现在单交易负载、稳定性上
TPS低,不达标 :
[if !supportLists]1、[endif]首先确认IO读写是否过高,查看日志级别为哪一级别,如果是info或debug先关闭或者修改为error级别,排除因日志问题导致的TPS不达标;
[if !supportLists]2、[endif]先看应用和数据库服务器资源是否有偏高的问题,如果是数据库服务器资源异常,(如:CPU过高或内存过高)需进一步确认线程是否有等待现象和锁表问题。如果有慢sql问题如是oracle需要打印awr报告查看top10等事件进一步确认是什么原因。
响应时间过长:
1、查看应用服务器日志,确认请求消耗时间具体是在应用还是在数据库,1(如果是应用占用时间较长,需要使用监控工具(如:jprofile)确认是否因慢请求或方法占用较多,2(如果是数据库sql问题(如是oracle需要打印awr报告查看具体的慢sql进行调整。如加索引的方法来解决。
内存泄漏:一般出现在压测稳定性的时候才会体现。用nmon监控工具,将nmon分析好的文件,在mem表中做cache线,memfree线作对比,先简单排查一下 可以用Jvisualvm生成dump文件用JProfiler打开查看方法和类的占用情况
测试一个交易涉及ABC三个系统,出现问题定位是哪个系统的问题
1 先测A单系统,如果A 系统没有问题
[if !supportLists]2. [endif]在测试A到B在C系统做挡板,如果A到B系统没有问题
[if !supportLists]3. [endif]再测试B到C 将B的报文发给C
遇到测试问题:
首先通过组内讨论的形式排除测试脚本,测试数据,测试场景等自身原因,确认无误后将测试问题发给测试经理和开发项目组。
我们自己可以通过查日志,观察服务器资源现象,百度等多种手段协助处理。并且敦促开发项目组提供合理的原因和解决办法。
写测试报告需要关注那些点
1测试报告必须明确测试指标,测试指标必须和前期的测试调研、测试方案一致
2测试数据必须精准
3话术必须准确,避免出现含糊,避免出现大约大概等比较含糊的字眼
4问题现象原因解决办法,必须详细准确,避免出现测试解决办法无法再生产环境实现的现象
5测试环境必须低于生产环境的配置
6避免数显数据错误,错别字,标点符号等低级错误