负载测试(Load Test)

2023-10-27

 

负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

Visual Studio Team System 2010给我们提供了一个创建并运行Load tests的工具。Load Test的基本目标就是模拟许多用户同时访问服务器。当从一个Load tests里面添加Web tests/Unit tests后,会模拟多个用户同时连接到服务器上,并向服务器发送多个HTTP请求。可以设置Load tests的属性,并广泛地运用到你的Web tests中。

应用&实践:使用Visual Studio 2010创建一个负载测试(Load Test)

1.创建一个负载测试

Visual Studio 2010负载试验提供了每个负载测试的场景设置,使您可在整个负载范围内进行场景测试的控制,因此,新的选项允许更容易地创建一个负载测试,精确模型的负载可以在服务器下执行模拟测试。

(1)设置负载测试的名称和思考时间的配置

首先,使用负载测试向导创(Load Test Wizard)建一个新的负载测试。打开资源解决方案浏览器(Solution Explorer),右键菜单中选“Add”,单击“Load Test..”,在弹出安装向导中,单击“Next”键,弹出场景向导界面。场景为配置个性化测试提供了灵活性,它可以模拟复杂真实的工作负载。输入场景名字为“TestScenario”,选择“user normal distribution centered on recorded think times(正态分布用户为中心的思考时间记录)”,设置思考时间为2秒(思考时间根据实际需要而设置),然后单击“Next”,如图1所示。

图1  指定负载模式

在完成向导后,也可以返回并编辑负载测试,并更改的设置,在向导中选择适用的配置选项。

负载测试包含一个或多个场景,这是用来模拟如何与一组用户的服务器应用程序进行交互。一个人的情况涉及负载模式,测试组合,浏览器结构,网络结构。这些设置的每一个对应于网页中的负载测试向导。

(2)测试组合类

Load pattern属性指定了在一个load test过程中如何调整模拟的用户数。选择Constant Load,设置用户数为25,然后单击“Next”,如图2所示。

图2  选择组合模式

在该模式中包括基于总测试数、基于虚拟用户数、基于用户节奏,不同的建模方式其分配的百分比不同。负载模式可以指定新用户的增加活跃的虚拟用户的数量。再负载测试多个负载模式的能力,来实现测试目标。我们必须指定负载测试中每个场景的负载模式。

(3)测试组合

将所有的webtest组合在一起,(Test mix model)模拟最真实用户操作系统的环境。我们可以有多个工作流,这样就更加贴近终端用户交互你应用程序的情况。

①选择“Based on the total number of tests”,然后单击“Next”,如图3所示。

图3  测试组合模式(基于测试总数)

其中各组合模式的介绍参考图3中的选中部分,该说明有对不同的模型进行介绍。

②如果选择“Based on sequential test order”,然后选择“Next”,向导页面将添加到顺序的测试。此项是新的“Test Mix”基于顺序测试项(如图4(1)所示),每个虚拟用户将通过顺序测试和语序对其设置,此选项可在新的负载测试和新的场景中使用。如图4(2)所示。

图4(1)  测试组合模式(基于顺序测试顺序)

图4(2)  基于顺序测试场景

如图2所示,图表文字说明的行为,并显示与25个虚拟用户和两个场景的测试例子。无需输入百分比或为其他测试混合类型协调信息。如果创建了这个测试组合类型的负载测试方案,可以随后使用负载测试编辑器的混合编辑器更改测试混合型,或添加、删除或更改测试顺序向导。

(4)添加组合

Test mix指定了虚拟用户在一个load test场景中运行一个给定测试的可能性。能让你更加真实地模拟负载。我们单击“Add”添加一个Web test 或 unit test(在这里我们可以增加一个Webtest测试),选择一个测试项,然后单击“OK”。如图5所示。

图5  添加测试组合并进行方案分配

在图5中,可以对组合的测试项目进行百分比分配,当对其中某个测试项目加锁后,更改其他项目的百分比,该测试项目的百分比不能再进行更改,但是可以对锁定的测试进行独立修改。

提示:Web性能测试(Web Performance Test)

VS 2010版本中,微软把Web Test改为Web Performance Test,可以在VS 2010解决方案资源管理器,打开一个测试项目,右键菜单|Add|Web Performance Test或者在VS 2010 IDE菜单Test|New Tes|Web Performance Test进行创建。创建时IE会自动弹出,当输入被测试Webz地址时,会自动录制脚本并可以手动生成C#或者VB脚本代码。然后加入到Load Test中进行集成测试中一部分,与Load Test 测试方式相似,在这里不再赘述。

“Web 测试”也称为声明性 Web 测试,它由一系列 HTTP 请求组成。Web 测试通过发出 HTTP 请求在协议层工作。Web 测试不运行 JavaScript。但是,可以在运行时通过使用 Web 测试插件、Web 测试请求插件、提取规则或编码的 Web 测试来模拟 JavaScript 操作。 它用于测试 Web 应用程序的功能以及在负载下测试 Web 应用程序。Web 测试可用于性能测试和压力测试。 通过在浏览器会话中记录活动,可以创建 Web 测试。还可以使用 Web 测试编辑器手动构建 Web 测试。 要测试 Web 应用程序,请通过记录在 Web 应用程序中导航的测试来创建 Web 测试。

(5)添加网络组合

模拟在不同的网络环境下访问系统。Network mix指定了虚拟用户运行一个网络profile的可能性。选择网络类型“LAN”,然后单击“Next”按钮,如图6所示。

图6  添加网络组合

可以添加多个网络组合,并可以对其网络类型进行百分比分配。当锁定其中某个网络类型的百分比后,修改其他的网络类型,该网络类型的百分比不发生变化,但是可以独立修改该网络类型的百分比。

(6)浏览器组合

模拟不同的浏览器访问Web系统。Browser mix指定了虚拟用户运行多种浏览器综合测试的可能性。选择网络类型“Internet Explorer 8.0”,然后单击“Next”按钮,如图7所示。

图7  添加浏览器组合

可以添加多个浏览器的组合。也可以对其浏览器进行百分比分配,当锁定其中某个浏览器的百分比后,修改其他的浏览器,该浏览器的百分比不发生变化,但是可以独立修改该浏览器的百分比。

(7)计数器设置(Counter sets)

添加被监控的服务器的计算机名字或者IP地址,以监控其具体的计数器。Counter sets是一系列系统性能计数器,在运行一个load test过程中对性能监视很有用,添加计算机名“Local Computer”,选择“Next”,如图8所示。

图8  添加计数设置

添加计算机。输入需要被监控计算机的名字或IP地址,并选择需要监控的参数。选中参数后,该参数会在右侧显示。

(8)运行设置

模拟虚拟用户在系统中运行的时间和采样速率等。The run settings确定了测试的时间长度、warm-up期限、采样率、连接模型 (仅用于Web tests)、结果存储的类型、有效等级和SQL跟踪。我们选择测试时间长度为5分钟,然后单击 “Finish”按钮,创建了一个名为“LoadTest1”的负载测试。如图9所示。查看测试结果,如图10所示。

图9  运行设置

图10  查看结果显示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

负载测试(Load Test) 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Web 应用程序使用 API 来完成一切?

    我即将开始为我的公司规划一个内部项目管理工具 API 一直让我疑惑 首先创建 API 并使用这些 API 调用构建实际站点而不是实施两次 是否会被视为不好的做法 效率太低 让我知道你的想法 我完全同意开发 API 将为您提供解耦的架构 并且
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • 使用 React.forwardRef 与自定义 ref prop 的价值

    我看到React forwardRef从反应文档来看 似乎是将引用传递给子功能组件的认可方式 const FancyButton React forwardRef props ref gt
  • Python if 与 try- except

    我想知道为什么下面程序中的 try except 比 if 慢 def tryway try while True alist pop except IndexError pass def ifway while True if alist
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck
  • 要做或不做:将图像存储在数据库中[重复]

    这个问题在这里已经有答案了 在 Web 应用程序的上下文中 我的前老板总是说在数据库中放置对图像的引用 而不是图像本身 我倾向于同意在数据库中存储 url 与图像本身是一个好主意 但在我现在工作的地方 我们在数据库中存储大量图像 我能想到的
  • 如何对单个 TypoSript 对象生成进行基准测试?

    我想对单个 TypoScript 对象生成进行基准测试以控制性能 是否可以使用某些 stdWrap 方法 我想要对其进行基准测试的 TS 对象示例 Test 1 page 10 RECORDS page 10 tables pages so
  • UITableView 由于阴影和边框而滞后

    我有以下代码来向 UITableViewCell 的背景添加边框颜色和阴影 我的问题是这段代码会导致 tableView 本身出现巨大的滞后 请你告诉我如何优化我的代码 防止 UITableView 的滞后 if cell viewWith
  • 如果 jQuery 脚本是在所有页面 HTML 之后加载的,那么它们还需要 $(document).ready 吗?

    如果我在所有页面 HTML 下方加载 jQuery 脚本 我是否还需要等待 document ready能够使用jQuery来查找页面中的元素 否 因为文档已经加载 Dom 从上到下加载 我个人喜欢把所有的js放在页面底部而不是放在头部 然
  • 您可以在不是在 Google 协作平台下创建的网站上使用 Google 脚本吗? [复制]

    这个问题在这里已经有答案了 Google 脚本有一种方法可以嵌入到 Google 网站中 但我想知道是否可以在非 Google 托管的网站上使用 Google 脚本 此 google 脚本的目的是作为 Javascript 的简单替代方案
  • 针对 Android 开发优化 Eclipse

    我使用 Eclipse 和 ADT 插件开发 Android 而且速度 很慢 我必须经常重新启动 当我打开各种 Android 项目 当我使用库项目时需要 时 情况会变得更糟 使用 ADT 插件时 是否可以进行任何具体优化来提高 Eclip
  • 节省页面加载时间的提示[重复]

    这个问题在这里已经有答案了 我的问题 削减那些不必要的 kb 并使页面加载速度更快的最佳方法是什么 全部是什么优化实践 编码实践 在js php中 如果执行可以使您的页面更轻 为什么我问这个 我读了这篇关于 jquery js 与 jque
  • kdb+ 32bit 的性能表现如何

    Kx 宣布 http kx com press releases 140402 php their 免费 kdb http www kxcommunity com 32位 时间序列数据库 我们通常可以期望该数据库的每秒读 写性能如何 我确实
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 基于范围的 for 循环对性能有益吗?

    阅读 Stack Overflow 上有关 C 迭代器和性能 的各种问题后 我开始想知道是否for auto elem container 被编译器 扩展 成最好的版本 就像auto 编译器立即将其推断为正确的类型 因此永远不会更慢 有时甚
  • 每个 mmap/access/munmap 两次 TLB 未命中

    for int i 0 i lt 100000 i int page mmap NULL PAGE SIZE PROT READ PROT WRITE MAP ANONYMOUS MAP PRIVATE 1 0 page 0 0 munma
  • 哪些mysql设置影响LOAD DATA INFILE的速度?

    让我来介绍一下情况 我们尝试将适量的行数 大约每天 10 20M 插入到宽度适中的 MyISAM 表中 Field Type Null Key Default Extra blah1 varchar 255 NO PRI blah2 var

随机推荐

  • 100天精通Python(基础篇)——第15天:布尔类型和比较运算符

    文章目录 布尔类型 比较运算符 示例代码 布尔类型 True 表示真 False 表示假 比较运算符 示例代码 bool 1 True bool 2 False print f bool 1 bool 1 类型 type bool 1 pr
  • [转载] 机器学习数据集统计系列(二)

    金融 美国劳工部统计局官方发布数据 房地产公司 Zillow 公开美国房地产历史数据 沪深股票除权除息 配股增发全量数据 截止 2016 12 31 上证主板日线数据 截止 2017 05 05 原始价 前复权价 后复权价 1260支股票
  • 很抱歉,EXCEL遇到错误,使其无法正常工作,因此需要关闭EXCEL。是否希望我们立即修复?...

    出现以上情况解决方式 按Windows R 输入 regedit 打开注册表 找到以下键值 HKEY CURRENT USER SOFTWARE Microsoft Office 16 0 Excel Options 在右侧新建DWORD值
  • 收藏:程序员必选其一的好用的15种文本编辑器

    很多时候比如编程查看代码或者打开各种文档下我们都会用到文本编辑器 Windows自带的记事本功能很简陋并且打开大文件很慢 因此很多童鞋都会有自己喜欢的一款文本编辑器 在这里 西西挑选前15个最佳的文本编辑器 这些编辑器实际上主要适合程序员
  • Java之命令提示符

    启动控制台 Window R 输入cmd回车即可打开 文件夹操作 盘之间的切换 gt 盘名称 PS 盘名大小写不做要求 在一个盘中进入文件夹 gt cd 空格 文件夹名字 返回上一级 gt cd 空格 or cd 直接回到根路径 PS 空格
  • 性能测试基础

    性能测试 一 性能测试的目的 二 五大性能指标 1 响应时间 2 并发用户数 3 吞吐量 4 思考时间 5 资源指标 三 测试方法 负载测试 找到最优负载量 压力测试 找到极限负载量 稳定性测试 关注长时间运行稳定性 并发测试 大量用户同一
  • windows系统下利用脚本批量修改文件夹下的文件属性

    步骤 1 在文件夹中新建一个文本文档 2 在文本文档中写入 ren 后缀 后缀 加号表示空格 如修改txt到csv则输入ren txt csv 3 保存文本文档 并修改后缀为bat格式 4 双击运行即可
  • mybatis批量更新 一条成功,多条失败

  • 上班族做什么副业赚钱?全面解析副业赚钱模式!

    每个人做事都需要输出精力 你的精力放在哪 时间就在哪 产生的结果也在哪 最近可能是大家对副业赚钱呼声最高的时候 怎么找到副业 如何做副业 是现阶段更多人在思考的问题 网上流行十多年的网赚事业 可能是想找副业的人首先想到的领域 我为什么把精力
  • window.history.go(-1)

    window history go 1 返回上一页
  • 鸿蒙设备开发实战8

    第7章 设备联网上云 7 1 对接华为云iot平台 华为云iot平台介绍 华为云物联网平台即华为设备接入服务 loT Device Access 提供海量设备连接上云 设备和云端 双向消息通信 批量设备管理 远程控制和监控 OTA升级 设备
  • 手撸代码-括号序列

    思路 1 利用栈的后进先出的特点 遇到左括号入栈 遇到右括号则将栈顶元素与右括号判断是否相等 不相等则不是合法的括号序列 2 循环结束后 栈为空 说明不是合法的括号序列 public boolean isValid String s Vec
  • 常见算法笔试或面试题

    Problem 1 Is it a loop 判断链表是否有环 Assume that wehave a head pointer to a link list Also assumethat we know the list is sin
  • springboot-分页功能

    1 分页功能的作用 分页功能作为各类网站和系统不可或缺的部分 例如百度搜索结果的分页等 当一个页面数据量大的时候分页作用就体现出来的 其作用有以下5个 1 减少系统资源的消耗 2 提高数据库的查询性能 3 提升页面的访问速度 4 符合用户的
  • ue4 小知识点 3d ui widget 跟随摄像机转动 始终面对摄像机

    1 c 用UWidgetComponent UesedUICom NewObject
  • getchar()的作用

    就目前而言 我所遇到的getchar 有两处 1 在程序末尾加getchar 用来让程序不会立即退出 跟system pause 是一样的功能 可能你在写完代码后用ctrl F5运行时 不加getchar 程序也不会立即退出 这是当然的 编
  • Javascript中0除以0得到NaN,1除以0得到infinity(无穷尽)

    1 任何数值除以0都会导致错误而终止程序执行 但是在 JavaScript 中 会返回出特殊的值 因此不会影响程序的执行 2 比0大的数除以0 则会得到无穷大 所以 js 用 Infinity 来显示出来
  • Android Socket 服务器ServerSocket发数据到客户端

    使用Socket和ServerSocket在局网使用二台电脑 创建服务器和客户端连接 发送数据 第一步创 建服务器 在台试电脑 AbdroidStudro MainActivity类创建 ServerSocket服务器 发送数据给笔记本电脑
  • vue里面有ajax,vue中的ajax请求

    一 fetch 原生js新增 用于请求数据 fetch url headers token localStorage getItem token content type apllication xxx urlencoded method
  • 负载测试(Load Test)

    负载测试 Load Testing 是确定在各种工作负载下系统的性能 目标是测试当负载逐渐增加时 系统组成部分的相应输出项 例如通过量 响应时间 CPU负载 内存使用等来决定系统的性能 负载测试是一个分析软件应用程序和支撑架构 模拟真实环境