ftp1 = 0;
ftp_logon_ex(&ftp1, "FtpLogon",
"URL=ftp://Zee:1234@ZEE",
LAST);
lr_start_transaction("logon");
ftp2 = 0;
ftp_logon_ex(&ftp2, "FtpLogon",
"URL=ftp://Zee:1234@ZEE",
LAST);
ftp_dir_ex(&ftp2, "FtpDir",
"PATH=", "PASSIVE=TRUE", ENDITEM,
LAST);
ftp_dir_ex(&ftp2, "FtpDir",
"PATH=/", "PASSIVE=TRUE", ENDITEM,
LAST);
lr_end_transaction("logon", LR_AUTO);
ftp_get_ex(&ftp2, "Get_Files",
"SOURCE_PATH=/1txt",
"TARGET_PATH=d:/1txt",
"MODE=ASCII",
ENDITEM ,
LAST);
ftp_put_ex(&ftp2, "FtpPut",
"SOURCE_PATH=ftpfile_1dat", "TARGET_PATH=/1mdb", ENDITEM,
LAST);
ftp_delete_ex(&ftp2, "FtpDelete",
"PATH=/1txt", ENDITEM,
LAST);
ftp_mkdir_ex(&ftp2, "FtpMakeDir",
"PATH=/新文件夹");
ftp_dir_ex(&ftp2, "FtpDir",
"PATH=/", "PASSIVE=TRUE", ENDITEM,
LAST);
ftp_rendir_ex(&ftp2, "FtpRenDir",
"SOURCE_DIR=/新文件夹", "TARGET_DIR=/2", ENDITEM,
LAST);
ftp_logout_ex(&ftp2);
ftp_logon_ex(&ftp2, "FtpLogon",
"URL=ftp://Zee:1234@ZEE",
LAST);
ftp_dir_ex(&ftp2, "FtpDir",
"PATH=", "PASSIVE=TRUE", ENDITEM,
LAST);
ftp_dir_ex(&ftp2, "FtpDir",
"PATH=/", "PASSIVE=TRUE", ENDITEM,
LAST);
ftp_delete_ex(&ftp2, "FtpDelete",
"PATH=/2txt", ENDITEM,
LAST);
ftp_logout_ex(&ftp2);
ftp_logout_ex(&ftp1);
zee神写的使用LR对数据库进行性能测试,实际上有多种办法,包括通过现有的数据库协议进行CS模式的先录制后执行的模式,以及通过socket方式向服务器发包方式的测试方式。这些是常规书籍上介绍的比较简单上手的测试方法,但是不具备通用性,受已有协议或socket编程方式的限制,所以需要更为通用的测试方法。
用Java user的协议进行所有数据库性能的测试工作:
Java user 不需要录制,把所有的 *** 作通过java语言进行实现,通过lr调用java的class进行加压批量 *** 作,这样可以不关心被测系统是哪个数据库,只要能够通过jdbc进行访问,就能实现性能测试。
一、测试环境准备
1 被测服务器准备,根据测试目的,搭建需要的数据库服务器,确保数据库能够正常访问,正常 *** 作;
2 Java代码的准备,无论使用哪种IDE,只要能够编写访问数据库的class就可以,形式可以是j2se,也可以是j2ee,因为在 *** 作时只使用class的部分方法,所以j2ee就可以了;
3 LR的脚本调试,把java的class导入到脚本调试模式,根据需要添加事务以及其他 *** 作。
二、编写数据库访问
1 使用myeclipse,创建web project,创建如下图的包目录:
Java文件中包含各种访问数据库的方法。
需要注意的是,class中的方法必须是public static,否则LR中无法调用。由于创建的是j2ee程序,所以不用main函数,在web中就可以进行功能验证。
确认class中的方法编写完成,创建一个webjsp文件,如下:
导入class
声明类,并实例化,直接调用刚才编写的3个方法,因为这3个方法是直接对数据库进行 *** 作,不需要实参,也没有返回值,所以直接实现即可。
此时启动web服务,在浏览器中输入jsp的地址,直接刷新页面,就可以调用这3个方法,如果正确,就会对相应的表进行 *** 作,如果不正确,则需要修改相应的代码。
2 LR脚本准备:
LR脚本实际上就是对访问代码的调用,关键在于需要根据测试场景划分不同的脚本布局。
例如:在myEclipse里,我们只编写了一个class,其中包含三个方法,如果在执行性能测试时,这三个方法相互独立,互不干涉,则最简单的划分方法是,创建三个java user,每个java user中包含一个方法,做三份脚本,场景执行时分别进行调用。如果三个方法之间有相互关系,则需要根据实际情况,把有关联的方法放在一起,具体情况可按实际灵活分配。
因为已经将class文件进行编译发布了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\com\lr\test”目录中找到对应的class文件,
复制这个文件,找到LR的目录:HP\LoadRunner\classes\com\lr\test\ 如果没有文件夹,按相同的内容创建。
在LR脚本中进行引包 *** 作:
将需要执行的java类以及方法,放在action中,可根据实际测试情况和所需要验证的内容,具体调试代码。
在这里可以像编写普通LR脚本一样,添加事务或集合点等内容。
由于是通过JDBC对数据库进行访问,因此要在java user中加载jdbc驱动。
运行时设置中,增加jdbc驱动,需要注意的是java user使用的本地jdk,需要至多16版本,若使用17版本,回放会有错误,这是jdk版本的问题。
*** 作完成之后,按F5或点击运行,进行脚本回放,实际此时也对数据库进行了 *** 作,可以直接查询对应的表,检查功能是否正确。
三、执行性能测试
已经有了java user的脚本,和普通web性能测试一样,设计场景、执行测试、收集报告、分析性能瓶颈即可。其实在租用之前你应该先让服务商提供下IP以及网站案例测试好速度与稳定性后再决定是否租用现在服务器已经开通你需要让服务商把用户名和密码给你如果你想测试的话建议把自己的网站架设上去然后找各个不同地区的朋友帮你打开网站参考下速度与稳定性也可以借助于一些测试网站比如说卡卡测速网来测试全国各地以及国外等不同地区访问你网站所需要的时间贴一篇我们内部的文章:
随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?
性能测试一般会围绕以下这些问题而进行:
1 什么情况下需要做性能测试?
2 什么时候做性能测试?
3 做性能测试需要准备哪些内容?
4 什么样的性能指标是符合要求的?
5 性能测试需要收集的数据有哪些?
6 怎样收集这些数据?
7 如何分析收集到的数据?
8 如何给出性能测试报告?
性能测试的执行过程及要做的事儿主要包含以下内容:
1 测试评估阶段
在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。
首先要明确只要涉及到准备上线的服务端产品,就需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。
测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等
2 测试准备阶段
在这个阶段,我们要了解以下内容:
a 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;
b 服务端功能的内部逻辑实现;
c 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样 *** 作数据库的?
d 服务端与客户端之间是如何进行交互的,即接口定义;
通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。
e 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;
f 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。
g 了解测试环境与线上环境的不同,例如网络环境、硬件配置等
h 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的最大处理能力。
i 沟通上线的指标
通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。
3 测试设计阶段
根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。
用例编写的步骤大致分为:
a 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。
b 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的 *** 作。
c 验证参数化后脚本功能的正确性。
d 添加检查点
e 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等
4 测试执行阶段
根据客户端的产品行为设计web服务的测试执行场景及测试执行的过程,即测试执行期间发生的事儿。通过监控程序收集web服务的性能数据和web服务所在系统的性能数据。
在测试执行过程中,还要不断的关注以下内容:
a web服务的连接速度如何?
b 每秒的点击数如何?
c Web服务能允许多少个用户同时在线?
d 如果超过了这个数量,会出现什么现象?
e Web服务能否处理大量用户对同一个页面的请求?
f 如果web服务崩溃,是否会自动恢复?
g 系统能否同一时间响应大量用户的请求?
h 打压机的系统负载状态。
5 测试分析阶段
将收集到的数据制成图表,查看各指标的性能变化曲线,结合之前确定的上线指标,对各项数据进行分析,已确定是否继续对web服务进行测试,结果是否达到了期望值。
6 测试验证阶段
在开发针对发现的性能问题进行修复后,要再执行性能测试的用例对问题进行验证。这里需要关注的是开发在解决问题的同时可能无意中修改了某些功能,所以在验证性能的同时,也要关注原有功能是否受到了影响。
想看原文或者有测试其他相关的问题可以关注下 搜狗测试 微信公众号,我们上面有不少关于性能测试分享~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)