• 0
  • 0
分享
  • LoadRunner简介——软件测试圈
  • 北极 2022-02-10 14:53:42 字数 1332 阅读 2148 收藏 0

简介

LoadRunner是一种常用的性能测试工具,支持脚本录制,也支持编程,最新的版本是12.6,但是在win10系统上controller是打不开的,需要授权码。以下操作都是以12.50版本为例进行说明。loadRunner是商业软件,社区版本的话一台机器最多能开50,多并发的话就只能多台每台机器装一个。

对于网站来说,loadrunner本质是通过http协议压测的。模拟多个浏览器发送不同的数据包给服务器。通过多线程/多进程来做下面的事情:

client---->server: 发送请求

client<----server: 发送服务器处理结果

三大组件

  1. Virtual User Generator:虚拟用户生成器,用来录制脚本、调试脚本,注意:在VuGen中脚本是单线程运行;

  2. Controller:设定测试场景,运行多线程(多进程)执行并发测试;

  3. Analysis:分析性能测试执行后的结果,可以出测试结果和很多图表;

  4. ipspoofer:ip欺骗,一般不用。

原理

录制期间,VuGen模拟数据库客户终端并追踪所有用户发出的请求与用户从服务器接收的请求

回放期间, Vuser scripts通过调用服务器API直接与服务进行交流。 因为不需要客户端界面,所以可以允许大量用户运行或使用更少的机器进行测试,同时在客户端未发开的时候执行测试。

脚本生成过程

1、停止录制时,所有客户端和服务器交互协议会被放在View->Output中

1.png

2、VuGen根据Generation log进行协议交互分析,最终生成脚本。如果录制结束时出错或者错误修改后,想回到最初的状态,那么可以使用Record->Regenerate Script 功能来重新生成脚本。

删除无关请求

录制完成后有一些于本次无关的请求,比如发送给qq,360,微软等等,这些请求也是需要耗费电脑的资源,导致给服务器加压的能力下降,而且这些请求也不会发送给被测的服务器,所有都需要把这些无关的请求删除。

静态的网页,图片,静态的js,静态的css单独放到一个服务器上,动态的放到另外服务器上,给动态服务器减压;loadrunner全部都是基于协议来实现的,没有浏览器进行展示,所以静态的资源一般没有什么用。

参数化

参数化就是使用指定的数据源中的值来替换脚本录制生成的语句中固定的参数,本质就是变量代替常量。

好处:这样可以更加真实的模拟用户操作,增加服务器的压力,避免用同样的用户名和密码登录导致大量的缓存被命中

关联

下一次的请求需要用到上一次请求的数据或者请求返回结果,就称为关联。比如:登录成功之后,系统返回一个token,后续访问所有的页面都用到带有这个token。

在使用LoadRunner录制脚本的时候,拿到录制的token都是上一次的值,回放的时候直接使用的话就会失败。这个时候就需要使用关联,把需要用到的动态数据放到变量里,下次使用的时候用变量替换。

N+1策略:

在压测的情况下,需要在另外一台没有加压的电脑上,打开一个浏览器,访问被测的网址,看是否正常响应。


作者:小小小小人ksh

原文链接:https://blog.csdn.net/kongsuhongbaby/article/details/89528410

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在日常测试工程中,不管是功能测试、接口测试、UI测试等,其实本质都是对应用程序的数据进行增删改查操作。开发人员设计好数据库模型后,各个业务功能都依赖于对该模型进行操作,从而展现出不同的数据给用户。  在面试或者是写简历时,对数据库只能一句话概括“掌握数据库的增删改查”。今天来给大家带大家了解下web应用程序的数据库设计和相关操作,也就是学习下数据库是如何设计和生成的。  在开始之前,首先要知道常用的web应用框架有django和flash框架,两者的区别可以简单形容为django像是精装房,大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富,适合企业...
            15 15 2482
            分享
          • 手动测试做久了,总会想要尝试接触些新技术,UI自动化就是一个非常容易尝试的入门砖。小白也能做,相信自己放手去试吧。一、为什么需要做UI自动化1.想一想,为什么需要做UI自动化可以从解决问题的角度出发,想一下在工作中,哪些工作重复性非常高?最最常见的重复性工作,那就是:功能回归测试啦。现在市面上的大小公司都在推敏捷开发,几乎都是2周/3周发一次版本。即2周/3周跑一次回归测试,而且Android和iOS都需要跑一次,即便分在个人头上的回归内容很少,其实也占据了大家大量时间。当然,并不是说UI自动化只能在回归测试阶段发光发热,在测试的任何阶段都可以尝试跑UI测试脚本,可以根据公司需要调整运行阶段、...
            0 0 2140
            分享
          • 1、移动端性能监测的主要途径移动端性能监测的主要途径有三种:一是开发工具自带的监测工具,例如xcode自带的instrument,Android studio自带的Android monitor;二是使用第三方SDK;三是自行开发检测代码。三种途径各有利弊。开发工具自带的监测工具,包含了很多强大的监测功能,且持续迭代更新,使用方便,为开发阶段的性能测试提供强有力的支持。但是只能在开发工具内部使用,不能独立使用在其他产品周期内。专门用于性能监测和用户行为、属性分析的第三方SDK,比如Bugly,OneAPM,听云,Firebase,把它们接入项目可以进行性能监测,这些第三方的工具工作原...
            0 2 3794
            分享
          • 在以往性能测试中,通常施压机的硬件资源不会成为压力瓶颈,但是在多任务并行的场景中,如果一个任务占用当前机器资源过多,会影响其他任务执行。或者当前用例本身存在问题,导致性能无法进一步提升,影响了性能测试执行。根据以上场景,如果能从监控工程上得到解决自然是最好的。可以实时监控施压机和施压进程的CPU占用、内存使用、GC清空。但是,重点来了,并不是总能拥有一套完美的监控系统。这个时候,就需要自己手动解决一些痛点。经过查阅资源,最终将方案锁定在java.lang.management.ManagementFactory这个类,看名字和路径大概能猜个七七八八了。以上我提到的信息都可以调用这个类的API获...
            0 0 1085
            分享
          • 读者提问:什么是测试左移,什么是测试右移 ?阿常回答:一、测试左移测试左移就是在测试阶段到来之前,尽可能的抓紧开发前(需求分析)和开发中的时间做测试,提前发现问题,防微杜渐,避免积重难返。在需求源头就要控制伪需求,在代码设计阶段就要控制劣质代码。二、测试右移测试左移是往测试之前的开发阶段移,测试右移是往发布之后移,也就是产品上线了之后也可以进行一些测试活动。当然在生产环境直接做测试是不推荐的,但可以在生产环境做监控,监控显示性能和可用率,一旦发现任何问题,尽快反应,在用户发现之前,把问题解决了。关于左移和右移企业常见的做法,可参考@IDO老徐写的这篇文章如果能把功能测试涉及的这些都搞...
            0 0 1921
            分享
      • 51testing软件测试圈微信