因为项目登录的密码需要RSA加密,选用了jmeter作为压测工具;
就自己本次项目,顺便学习Jmeter,做一个简单的记录,本文主要介绍使用IE代理录制脚本;
自己也尝试过使用Badboy录制,还是喜欢代理录制,毕竟直接使用Jmeter录制,加一个HTTP 信息头管理器,请求头会在录制过程中自动填充,而是用Badboy需要自己手工添加;
【Jmeter准备】
【1】打开Jmeter:Jmeter解压文件夹→bin→jmeter.bat,双击打开;
【2】创建线程组:右击“测试计划”→“添加”→Threads(Users)→“线程组”;
【3】添加HTTP信息头管理器:右击“线程组”→“添加”→“配置元件”→“HTTP信息头管理器;
【4】添加HTTP Cookie管理器:右击“线程组”→“添加”→“配置元件”→“HTTP Cookie管理器;对于有Cookie的请求和响应,Cookie管理器会自动存储Cookie;
【5】添加HTTP 请求:右击“线程组”→“添加”→“Sampler”→“HTTP 请求”;填写Web服务器的 IP && 端口;
【6】添加“代理”:右击“工作台”→“添加”→“非测试元件”→“HTTP代理服务器”;
【7】添加“仅一次控制器”:右击“线程组”→“添加”→“逻辑控制器”→“仅一次控制器”;这样做是为了,直接将“登录”操作录制在仅一次控制器中;------非必要,如果不添加,录制的请求都会出现在线程组下,添加之后在录制时可以选择该控制器,则所有请求会放在该控制器下,可以折叠起来;针对“业务”还可以再添加一个“普通控制器”,这样可以直接将业务录制在普通控制器中;
所以我其实比较推荐,在录制之前,对于逻辑控制器已经有了初步的构思;
操作完上述之后,各元件结构如下:(注意作用域)
【IE设置】
IE浏览器→“设置”→“Internet选项”→“连接”→“局域网设置”→勾选“为LAN使用代理服务器”,地址:127.0.0.1;端口:8080
【录制】
【1】选择“HTTP代理服务器”→“目标控制器”,这里就可以选择你接下来的请求要录制在哪里,我选择“测试计划→线程组→一次控制器”,将登录放在该控制器下;
后点击“启动”,在IE浏览器中输入压测URL,录制即可;PS:建议在点击Jmeter的“启动前”,已经在IE浏览器中打开了空白页面,这样可以防止录入打开IE时的资源加载;
建议多加几个逻辑控制器,这样可以录制完一个业务功能后,点击“停止”更换目标控制器再启动,就可以把请求分类了;
在排除模式里添加需要排除录制的请求格式,可降低请求的繁杂性:如:.*.png .*.js .*.css
【附】本次项目:
将需要压测的所有业务放在一个jmx文件中,跑哪一个业务就将其右击设为“启用”,其他全部禁用即可;