本帖最后由 博为峰网校 于 2018-6-28 11:34 编辑
引言:为什么要进行性能测试呢?有些问题只有在大并发或者压力测试下才会暴露出来,在平常的公司内部测试中,感觉一切都是正常的,但是把服务放到生产线上,例如某个时刻突然有很多的用户要向我们的服务发送请求,这时候就考验到我们的服务是否会死锁,内存泄漏,能否在一个可接受的范围内响应,会不会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-8052),我们将立即处理。
了解更多课程内容及课程安排,可咨询QQ 2852509883 或致电客服 400-821-0951(工作日9:00-17:30)
【看这里】技术交流、拓展人脉、领取福利欢迎加入博为峰网校大课堂>>>
|