Loadrunner 进行压力测试 并发测试
问题背景:
今年公司项目进行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。
- 保持测试环境是比较困难的,因为每一次测试都得还原最初始的环境,因此需要些一些脚本或者工具来自动还原数据库等。
- 测试比较花时间,但是对项目实际的价值比较高。
- 要经常总结并记录测试结果,调整测试方案。
- 中途还用过内存检测工具,并没有发现什么问题。
Loadrunner 进行压力测试 并发测试的更多相关文章
- 实验二. 使用LoadRunner进行压力测试
实验二. 使用LoadRunner进行压力测试 一. LoadRunner 概要介绍 1.1简介 LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具.通过以模拟上千万用户实 ...
- Apache压力(并发)测试工具ab的使用教程收集
说明:用ab的好处,在处理多并发的情况下不用自己写线程模拟.其实这个世界除了LoadRunner之外还是有很多方案可以选择的. 官网: http://httpd.apache.org/(Apache服 ...
- Jmeter对HTTP请求压力测试、并发测试的简单使用方法
对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...
- Apache ab 压力并发测试工具
当你使用PHP(或其他编程语言)完成一个web程序的开发,并且web程序在Apache服务器上正常运行的时候,你有没有考虑过对你的Apache服务器及部署在其上的web程序进行一些压力测试呢?毕竟,真 ...
- Jmeter对HTTP请求压力测试、并发测试
最近公司需要开发一个简单的报名系统,供外网用户提供报名服务,由于我们公司是个初创的微型公司,开发人员都是刚毕业不久,开发经验相当缺乏. 对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去 ...
- Jmete压力测试、并发测试的简单方法
我们的需求场景如下: 服务器硬件:(只有一台) 系统:CentOS 7 WebServer:Tomcat 7.0 Jdk:1.8 CPU:8核 2.9GHz两个 内存:16g 报名应用系统:只需要向外 ...
- 今天写了一个可以测试并发数和运行次数的压力测试代码。(Java)
今天写了一个可以测试并发数和运行次数的压力测试代码 介绍一下为什么会写这么一个工具. 介绍一个这个工具怎么用的. 背景 最近在开发CoapServer端,以及模拟设备侧发送数据调用开发好的CoapSe ...
- 使用JMeter3.0实战之分布式并发测试以及web API接口测试
简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...
- web性能并发测试工具(转)
导读:随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生 ...
随机推荐
- typing模块
目录 一.引言 二.typing模块的作用 三.使用typing模块 四.typing常用类型 一.引言 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么 ...
- 【微信小程序】mpvue中页面之间传值(全网唯一真正可行的方法,中指推了一下隐形眼镜)
摘要: mpvue中页面之间传值(注意:是页面之间,不是组件之间) 场景:A页面跳转B页面,在B页面选择商品,将商品名带回A页面并显示 使用api: getCurrentPages step1: A页 ...
- JMeter 使用 http长连接 |史上最全
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 疯狂创客圈(笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家介绍三个版本的 高并发秒杀: ...
- Python的条件锁与事件共享
1:事件机制共享队列: 利用消息机制在两个队列中,通过传递消息,实现可以控制的生产者消费者问题要求:readthread读时,writethread不能写:writethread写时,readthre ...
- 【学习笔记】动态规划—各种 DP 优化
[学习笔记]动态规划-各种 DP 优化 [大前言] 个人认为贪心,\(dp\) 是最难的,每次遇到题完全不知道该怎么办,看了题解后又瞬间恍然大悟(TAT).这篇文章也是花了我差不多一个月时间才全部完成 ...
- 服务端性能测试技能tree
ALL: Left: Right: 摘抄一下(觉得不错) 以下来自百度百科 ---- 软件性能测试 软件性能测试是在交替进行负荷和强迫测试时常用的术语.理想的“软件性能测试”(和其他类型的测试)应在需 ...
- Spring Boot 之异步执行方法
前言: 最近的时候遇到一个需求,就是当服务器接到请求并不需要任务执行完成才返回结果,可以立即返回结果,让任务异步的去执行.开始考虑是直接启一个新的线程去执行任务或者把任务提交到一个线程池去执行,这两种 ...
- ucoreOS_lab7 实验报告
所有的实验报告将会在 Github 同步更新,更多内容请移步至Github:https://github.com/AngelKitty/review_the_national_post-graduat ...
- 使用weui开发微信小程序
一.使用weui 学习一个新的技术,想要最短时间掌握并熟练使用它,那就是直接做项目了.把技术直接应用到项目中来,直接做出东西,这是我的方法,因为我很懒不太喜欢看一步一步看文档,看理论. 那怎么使用we ...
- python从入门到放弃--线程进阶
# ### 死锁,递归锁,互斥锁 from threading import Thread,Lock import time noodle_lock = Lock() kuaizi_lock = Lo ...