【LoadRunner】博客笔记项目 性能测试报告

文章目录

  • 前言
  • 一、博客笔记项目性能测试介绍
  • 二、编写性能测试脚本(VUG)
  •       2.1 测试脚本编写步骤
  •       2.2 脚本总代码和结果分析
  • 三、创建测试场景(Controller)
  •       3.1 测试场景创建实现步骤
  • 四、生成测试报告(Analysis)
  •       4.1 测试报告
  •       4.2 报表分析
  • 五、遇到的问题
  • 总结


前言


一、博客笔记项目性能测试介绍

使用loadrunner进行简单性能测试:

(1)测试功能:

针对登录、编写并发布博客以及删除博客、注销等功能进行简单的性能测试。

(2)测试进阶:
然后在实现的过程中,插入集合点以及事务等,并通过设置来实现用户的并发操作。


博客笔记页面展示:
博客登录页:

博客列表页:

博客详情页:


二、编写性能测试脚本(VUG)

2.1 测试脚本编写步骤

1、创建项目

由于我们测试的博客系统是一个Web项目,因此需要创建一个Web性能测试脚本。


2、代码编写

(1)访问博客笔记系统登录页面实现:
使用web_url 函数访问到博客笔记系统登录页面,为后续操作做准备。


(2)输入登录账号和密码进入博客详情页

使用web_submit_form函数访问到博客笔记系统详情页面

使用form函数是因为登录页面中NetWork,本web是使用form表单形式进行提交请求的。


(3)性能测试脚本的增强操作

1.添加事务

lr_start_transaction 开启事务
lr_end_transaction 结束事务

2.添加集合点:

lr_rendezvous 集合点设置(若存在事务则在开启前面进行设置)


3.添加检查点:

在页面中查找某元素是否存在(如避免用户的越权行为)
web_reg_find (注意:也是加在前面的,但是如果存在事务则可以是在开启事务之后)


2.2 脚本总代码和结果分析

代码总结:

Action()
{   //开始事务lr_start_transaction("index_trans");//进入博客笔记登录页web_url("index","URL=http://81.70.49.37:8080/BlogSystem/blog_login.html","TargetFrame=","Resource=0","Referer=",LAST);//插入登录集合点lr_rendezvous("login_rendezvous");//设置登录事务lr_start_transaction("login_trans");//插入登录后检查点web_reg_find("Text=注销用户",LAST);//登录后进入博客笔记详情页web_submit_form("login",ITEMDATA,"Name=username", "Value=zhangsan", ENDITEM,"Name=password", "Value=123", ENDITEM,LAST);//结束事务lr_end_transaction("login_trans", LR_AUTO);lr_end_transaction("index_trans", LR_AUTO);return 0;
}

执行结果和分析:


测试脚本通过:


三、创建测试场景(Controller)

3.1 测试场景创建实现步骤

步骤(1)设置虚拟用户并发数量

设置5个虚拟用户,防止电脑崩溃


步骤(2)在Controller中设置场景

1.Action  type lnitialize

设置每隔多久初始化一次


2.Action  type  Start Vusers

没10s上台2个用户。


3.Action  type  Duration

总持续运行时间3分钟


4.Action  type  Stop  Vusers

每8s退出两个用户


步骤(3)开始进行运行,性能测试开始

运行结果图:


四、生成测试报告(Analysis)

4.1 测试报告

测试报告图示:


4.2 报表分析

(1)点击率报表:


(2)吞吐量报表:


(3)平均事务响应时间:


分析结果总结:
① 剩余的物理内存近70%,即使用了近30%的内存,对于简单的博客系统的核心功能来说还是较高的内存使用,还有内存优化的空间。
② 当点击率较大时CPU使用也是达到了一个较高的点,CPU利用率较高。
③ 总之,该性能还有优化的空间。


五、遇到的问题

问题1:

在VUG中编写脚本时,设置检查点运行一直出错,not found。
1)原因:用户名、密码中因为包含中文,中文会被转码,所以在会一直失败。此时登录直接是失败的,并没有跳转到list列表页面。
2)解决方法:使用Xshell在数据库中新增了两条用户数据,全是非中文字符;然后再VUG中修改变量列表,此时重新进行测试,发现运行通过。


问题2:

如果直接设置访问list页面的url,并且在该请求之前设置检查点,此时是可以检查到列表页面的元素的。此时明明没有进行登录,但是为什么直接访问列表的url是可以拿到该页面的元素的呢?
解析:手动请求的haul就相当于是获取资源,所以就能够拿到页面,也就能够获取到页面信息。使用postman进行直接访问测试,发现是可以拿到该页面的相关元素的。

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sql查询语句

SELECT * from student,class 在上一篇博客里我们已经介绍了Sql语句的增删改,以及创建了用来演示增删改的数据库和表,下面我们介绍SQL语句中最重要的查询语句。 增删改博客链接(Sql语句之增删改查(CRUD)-CSDN博客&…

Nacos最新0day漏洞复现

目录 一、漏洞原理 二、版本信息 三、资产测绘 四、poc信息 五、总结 一、漏洞原理 漏洞的核心在于 Nacos 的某些接口没有严格的权限控制,攻击者可以通过特制的请求向 Nacos 服务器发送恶意数据,从而执行任意代码。下载nacos代码搭建环境https://gi…

数字孪生Digital Twin 结合建筑信息模型 BIM 在AIoT 智慧城市建设中Web 可视化大屏实践...

智慧城市建设通过将城市中的建筑、基础设施等构建 BIM 模型,并与实时采集的数据相结合,创建数字孪生体。可以实现对城市能源消耗、交通流量、环境质量等的实时监测和预测,优化城市规划和资源分配。 01 数字孪生 Digital Twin 数字孪生 Digita…

Jira学习

1.Dev OPS DevOps简介 DEV OPS 流程 DEV OPS流程对应工具 最重要的就是持续集成–Jenkins 2.Jira 新建项目

iOS ------ ARC的工作原理

一,ARC的概念 ARC (Automatic Reference Counting,自动引用计数) 是苹果公司在其编程语言(如 Objective-C 和 Swift)中的内存管理机制。ARC 通过编译器插入的代码自动管理对象的内存生命周期,减少了手动内存管理的复杂…

自主升级,平稳过渡!麒麟信安保障长沙市智慧交通发展中心CentOS迁移无忧

长沙市智慧交通发展中心围绕综合交通运输协调体系的构建,实施交通运行的监测、预测和预警,面向公众提供交通信息服务,开展多种运输方式的调度协调,提供交通行政管理和应急处置的信息保障。 该中心目前数据日交换量超2亿条&#x…

React Native: 构建原生级移动应用的跨平台框架

在移动开发领域,React Native作为一个创新的框架,允许开发者使用JavaScript和React来构建原生移动应用。这意味着开发者可以编写一次代码,同时在iOS和Android平台上运行,而不需要为每个平台单独开发。本文将探讨React Native的基本…

urllib的使用

urllib时python的一个内置库,一共包含四个模块 1. request-请求 这是最基本的HTTP请求模块,可以模拟请求的发送。就像在浏览器输入URL,按下回车一样,只需要给库方法传入URL以及额外的参数,就可以模拟实现发送请求的过…

社交电商的新篇章:AI智能名片O2O商城小程序与传统微商的区别与融合

摘要 在数字经济蓬勃发展的今天,互联网技术的革新正以前所未有的速度重塑着商业格局。传统微商模式,尽管在初期借助社交媒体迅速崛起,但因其固有的局限性,如产品质量不一、营销手段单一、信任机制脆弱等,逐渐暴露出诸…

postman实现接口关联

假如接口2依赖接口1里面的某个字段的值,那么在接口1的Tests里使用代码对这个字段进行提取设置,代码:JSON.parse(responsebody)赋值给一个变量var jsondata,然后将jsondata里面的数据提取出来并设置成公共变量供其他接口进行关联使用&#xff…

HTML-VUE页面调用android 客户端网络请求并返回数据

在Html-- Vue页面调用Android客户端网络请求并返回数据,通常需要通过WebView与Android客户端的JavaScript接口进行交互。以下是一个简化的示例: 在Android端,创建一个JavaScript接口: public class WebAppInterface {Context mC…

Qt程序图标更改以及程序打包

Qt程序图标更改以及程序打包 1 windows1.1 cmake1.1.1 修改.exe程序图标1.1.2 修改显示页面左上角图标 1.2 qmake1.2.1 修改.exe程序图标1.2.2 修改显示页面左上角图标 2 程序打包2.1 MinGW2.2 Visual Studio 3 参考链接 1 windows 1.1 cmake 1.1.1 修改.exe程序图标 获得一个…

重要的单元测试

👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正&…

docker将Java、vue、nginx打进镜像(涉及容器打成镜像)

一、背景 一个项目更新需要打成镜像包发布。 dockerspringboot.jarvue静态文件nginx 本文不讲安装docker,安装好安装,镜像源稍微麻烦点 二、操作 抄作业原文 传送门 按照上文拉取centos7,然后将需要的东西直接打进脚本,这样最简单&#…

云原生、Serverless、微服务概念

云原生(Cloud Native) 云原生是一种设计和构建应用程序的方法,旨在充分利用云计算的优势。云原生应用程序通常具有以下特征: 容器化:应用程序和其依赖项被打包在容器中,确保一致的运行环境。常用的容器技…

【Git分支管理】分支2种合并模式

目录 0.回顾 1.ff模式 2.no-ff模式 3.ff模式转no-ff模式 先提交再合并再提交 0.回顾 前面介绍了两种情况总结如下: master没有修改提交,在dev中修改提交,master和dev合并顺利master修改提交的同时dev也修改提交了,产生合并…

【数据结构】高效解决连通性问题的并查集详解及Python实现

文章目录 1. 并查集:一种高效的数据结构2. 并查集的基本操作与优化2.1 初始化2.2 查找操作与路径压缩2.3 合并操作与按秩合并 3. 并查集的应用3.1 判断连通性3.2 计算连通分量 4. 并查集的实际案例4.1 图的连通性问题4.2 网络连接问题 5. 并查集的优缺点5.1 优点5.2…

每天一个数据分析题(四百三十一)- 卡方检验

在列联表分析中,下列不能用卡方检验的是() A. 多个构成的比较 B. 多个率的比较 C. 多个均值的比较 D. 以上都不是 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖…

HTTP——POST请求详情

POST请求 【传输实体文本】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。 场景: 1. 提交用户注册信息。 2. 提交修改的用户信息。 常见的…

BernNet Learning Arbitrary Graph Spectral Filters via Bernstein Approximation

发表于:neurips21 推荐指数: #paper/⭐⭐ 设定:在本文中,h是过滤器. bernstein 多项式逼近(这个证明有点稀里糊涂的,反正我觉得一点点问题,可能因为我水平低) p K ( t ) : ∑ k 0 K θ k ⋅ b k K ( t ) ∑ k 0 K f ( k K ) ⋅ ( K k ) ( 1 − t ) K − k t k . p_K(t):…