引言:为什么要进行性能测试呢?有些问题只有在大并发或者压力测试下才会暴露出来,在平常的公司内部测试中,感觉一切都是正常的,但是把服务放到生产线上,例如某个时刻突然有很多的用户要向我们的服务发送请求,这时候就考验到我们的服务是否会死锁,内存泄漏,能否在一个可接受的范围内响应,会不会crash,能否处理所有的请求。为了不给用户糟糕的体验,所以我们需要在服务上生产线之前就要做好性能测试。
要做一个完整的性能测试要有哪些步骤?
1. 虚拟用户脚本编写(模拟用户实际操作)
2. 场景设计&运行(例如要5000个用户同时登录到会议室)
3. 分析结果报告
如何选择性能测试工具?
1.只选对的,不选贵的。根据自己所测的服务器对外提供了什么协议类型的API来进行相应的选择,比如我所处的平台新服务器对外提供了HTTP协议的API和基于SessionManager的TCP协议的API。关于HTTP协议的压测工具倒是有很多的,大家自己百度下,但是关于能测TCP协议的压测工具,我知道的并且会使用的并不多,只知道可以用能支持socket协议的压测工具来实现
2.选的测试工具能按自己希望的步骤来编写虚拟用户脚本(而不是根据测试工具提供的录制步骤来完成虚拟用户脚本)
3.有良好的场景设计功能
4.有易于查看的输出报告
5.有中文文档以及google或者百度等上能搜索到较多的疑问解答
综上所述,我选择了Loadruner作为我平台服务器初期的性能测试工具,而且loadrunner提供类C语言的脚本编写。但是由于loadrunner不易于扩展,是商用工具,要想免费使用只能用loadrunner11版本的破解版,loadrunner11是很早之前的版本,对于一些新功能是无法支持的。工具只是帮助我们完成任务的,要想更好的完成任务,我们就需要不断的探索更多的解决办法。
Loadrunner的使用
–下图显示的是LR的3个主要组件,其中Virtual User Generrator是用来编写虚拟用户脚本的
–Controller是用来设计场景的
–Analysis是用来分析运行数据,生成结果报告的
–结合实际工作中的项目来演示如何使用这3个组件的
Virtual User Generator
由于我们要自己设计脚本执行的流程顺序,暂时使用不到loadrunner提供的录制功能,所以打开Virtual User Generator,点击New Script然后选择一个通用的协议,例如Web(HTTP/HTML)后点击Create按钮,经过这些步骤后,就为我们提供了一个初步的编写脚本用的模版了
虚拟用户脚本的设计是要考虑到典型场景的,例如一个会议室登录多个用户、多个会议室登录多个用户等等,接下来的demo将是针对一个会议室登录多个用户的场景的。先上图再逐一分解
与最初创建的模版相比,发现上图左边的工程区里面多了cJSON.h和JsonDemo.dll2个文件,由于LR支持加载纯C编译的DLL,所以就可以像使用python那样import XX包进来,然后直接使用其中的方法来帮助我们编写脚本,关于cJSON.h和JsonDemo.dll2个文件这2个文件的作用,将在接下来的脚本分析中说明吧
先上2张实际写的项目脚本,为下面的解析提供依据:
Login_CreateGroup脚本:
如何找到纯C的源程序,然后编译成dll,最后导入到loadrunner中为我们所用?就拿刚刚的JsonDemo.dll来说
1.登录到Json的官网(www.json.org),找到C的源码然后下载
2.打开Visual Stutio,New一个空的project,选择Visual C++下的Win32 Console Application,然后把Application Type选择为DLL
3.右键点击Header Files,Add一个Existing Item…把刚刚下载的C的源码里面的cJSON.h添加进来,同样右键点击Source Files, Add一个Existing Item…把刚刚下载的C的源码里面的cJSON.cpp添加进来
4.Build Solution生成DLL(编译过程中如果有安全提示的话,可以在command line中输入/D “_CRT_SECURE_NO_WARNINGS” 来解决)
platfrom_room脚本:
上半场讲到这里就结束了,重点来了,作为测试人员,特别是性能测试,不会一门编程语言,会让你在当今测试行业显的毫无竞争力,有很多性能测试,也仅仅只会用一些性能工具,比如Loadrunner,但是你真的用会它了吗,Loadrunner一样能实现各种复杂需求场景的编码。不信你看看这门课,你能否写出性能测试脚本吗?
测试开发很难吗?Loadrunner一样能完成
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8054),我们将立即处理。
加客服小姐姐微信(wq-51testing),免费奉上软件测试开发课程资料(备注:软件测试)!
博为峰网校(www.atstudy.com),分享更多技术,加小姐姐扣扣3560867526,和大牛聊技术,开阔你的眼界!