Loadrunner 进行压力测试 并发测试

时间:2021-03-20 22:34:11

问题背景:

今年公司项目进行Saas化转型,在中间遇到很多问题,其中之一就是 Saas化后多租户的性能 和 并发问题。公司让我来调研和重现问题,通过调研总结了一些经验教训,分享给大家。


环境:

  • LoadRunner 11.0 (支持60000+并发)
  • LoadRunner 12.0 (适用版本 50并发,新版本比较好用,录制脚本不错,汉化很好)
  • WindowServer 2012 R2 (在服务器上搭建测试环境)
  • IIS
  • Vmware虚拟机(虚拟机安装了 LoadRunner 12,来录制脚本)
  • PostMan接口测试工具(保证测试前的接口调用是正常的)

下载地址:百度云 https://pan.baidu.com/s/1f3uatZmofUNyifxD9AvRIA


关于安装:

  • 安装 windows Server 2012。
  • 安装 LoadRunner 11.0,不要安装汉化包,只在上面做并发场景测试。
  • 安装Vmawre,安装系统,安装Loadrunner 12,做脚本录制。也可以录制脚本,就是觉得不好用,所以用的12做录制。

调研:

  • LoadRunner 如何使用 ??
  • LoadRunner 名词解释??
  • LoadRunner 代码录制??
  • LoadRunner API编码??
  • LoadRunner 场景压力测试??
  • LoadRunner 结果分析??
  • 踩过的坑??

安装教程:

https://blog.csdn.net/drf91519/article/details/78768665

https://www.cnblogs.com/xiaoqingSister/p/5906642.html

名词解释:

https://www.cnblogs.com/chengchengla1990/p/5799053.html

https://www.cnblogs.com/pearlpanda/p/4057046.html

代码录制:

https://litboy.kuaizhan.com/17/62/p4103840010edaf

参数化:

https://www.cnblogs.com/wxh04/p/8986450.html

https://blog.csdn.net/milan_ebk/article/details/5173978

集合点:

https://blog.csdn.net/huangjin0507/article/details/52161299

API文档:

https://wenku.baidu.com/view/4ce602dd6f1aff00bed51eff.html

结果分析:

** 要多做测试方案,结合自己的场景多分析问题,下面就是在项目中分析的问题(表现,数据库数据,日志等)

表现:

100个数据库,300左右并发量。CPU使用率正常,数据库读写正常。

猜测:

数据库死锁:这点目前来看是不成立的,因为1000个虚拟用户访问的频率是差不多的,1个数据库没有死锁,分摊到100个数据库应该是可以正常处理的
内存溢出(缓存、可以使用内存工具查看那些内存高)

最后项目的问题是:

深入研究EF Core AddDbContext 引起的内存泄露的原因

https://www.colabug.com/3076902.html

目前已经升级框架到最新asp.net core。问题得到很好的修复。


踩过的坑:

  • 谷歌浏览器录制代码打不开,可以使用fang~qiang工具。估计是和浏览器需要调用谷歌api有关具体不详。
  • 可以删除录制代码里面不需要的代码。自己把握。
  • 综合理解其概念过后很多可以自己写代码。具体可以参见API。
  • 保持测试环境是比较困难的,因为每一次测试都得还原最初始的环境,因此需要些一些脚本或者工具来自动还原数据库等。
  • 测试比较花时间,但是对项目实际的价值比较高。
  • 要经常总结并记录测试结果,调整测试方案。
  • 中途还用过内存检测工具,并没有发现什么问题。