对OIM Web(UI)层进行压力测试

Oracle IDM中的默认配置保留20个专用于服务前端(UI)请求的线程 。 从根本上讲,这意味着应用程序服务器具有20个线程池,可用于为通过Web控制台(/ identity或/ sysadmin)访问OIM的用户提供服务。

对于Weblogic ,这是它的配置方式:

oim-ui-thread-conf

通常发生的是

  • 用户访问OIM URL,例如http:// oimhost:14000 / identity
  • 浏览器发送带有一些添加的HTTP请求标头和其他信息的简单(HTTP)GET请求
  • 应用程序服务器(例如Weblogic)从池中拾取一个线程并使用它来处理请求
  • OIM做出回应,浏览器呈现登录页面,大部分时间用户都很高兴! ;-)
  • 服务请求后,应用程序服务器上的线程将发送回池中(请记住我刚才提到的20个线程池),因此可以被另一个请求重用

我只是想尝试一下,并通过JMeter执行了一些简单的测试

注意 :这仅是前端/ UI压力测试–与业务逻辑无关

脚步

嗯,您需要在JMeter中设置一些配置-它们几乎是标准配置,与OIM无关。

  • 设置线程组 (代表用户)
  • 配置HTTP请求,例如,配置OIM URL,上下文路径,端口(再次,非常基础)
  • 配置结果查看器 –树或表模式。 这是用于实时跟踪结果

JMeter配置(.jmx)文件可供参考–只需将其导入JMeter,您应该能够找出确切的配置参数,并在需要时对其进行调整

测试计划

测试参数

我尝试通过在JMeter的“线程组”设置中更改“ 线程数”和“ 加速期”属性来测试各种排列和组合

线程数–等于您要模拟的用户数
加速周期(秒)–等于您希望JMeter触发所有请求的时间段/范围

例如,线程数= 100,启动周期= 20秒,基本上意味着模拟一个场景,其中100个用户在20秒的时间内访问您的应用程序(在这种情况下为OIM)。

  • 尝试1:线程数= 100,加速时间= 20秒
  • 尝试2:线程数= 200,加速时间= 20秒
  • 尝试3:线程数= 500,加速时间= 20秒
  • 尝试4:线程数= 1000,加速时间= 20秒
  • 尝试5:线程数= 2000,加速时间= 20秒

线程组配置

我在期待什么

老实说,我希望在20秒的时间内触发2000个线程(潜在用户)时会有一些延迟/延迟。 看起来没有发生。

实际结果

总而言之,反应是非常健康的。

  • 绿色结果,即HTTP 200(确定)响应
  • 低延迟和加载时间

结果2

需要注意的

  • 这是在个人测试VM(运行OIM 11g R2 PS2)中执行的,因此系统上没有太多负载
  • 当我连接的服务器只是一个来宾VM时,不能期望太多延迟;-)

尽管如此,这仍然很有趣,并且在后端具有运行进程(例如调度程序,某些访问请求进程等)的服务器上执行相同的测试将很有趣。

如果20个线程的现成配置在您的环境中不起作用,则可以使用Weblogic Admin Console进行更改–冲洗并重复:-)

在那之前..欢呼!

翻译自: https://www.javacodegeeks.com/2015/02/stress-testing-oim-web-ui-layer.html

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

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

相关文章

umi config.js整体defineConfig配置

import { defineConfig } from umi;export default defineConfig({hash: true, // 配置是否让生成的文件包含 hash 后缀,通常用于增量发布和避免浏览器加载缓存。history: { // 配置 history 类型和配置项type: hash // 可选 browser、hash 和 memory},base: /, // …

在 Yii框架中使用session 的笔记:

在 Yii框架中使用session 的笔记: 首先,在Yii框架中,你不需要像标准PHP代码那样使用session_start(),在Yii框架中,autoStart 属性缺省被设置为true,所以,虽然没有使用session_start(),你仍然可以使用$_SESS…

java 拼接html_程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀

1.曾经不止一次在生产中见过类似这样的代码:这有很多变种,例如用 Integer.valueOf(1)、 (Integer)1 之类的,那些细节都不重要。重要的是:凭空用一个 Integer 对象作为锁对象。2.AbstractComponentBuilderTemplateFactory3.HelloWo…

本地项目antd 修改.less文件导致内存溢出

项目场景: antd 项目,修改less文件会导致内存溢出 问题描述 本地环境antd 项目,修改less文件会导致内存溢出;如下 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory原因分析: 这…

序列化代理模式

在上一篇文章中 ,我谈到了一般的序列化。 这是更加集中的内容,并提供了一个细节: 序列化代理模式 。 这是处理序列化许多问题的一种好方法,通常是最好的方法。 如果开发人员只想了解有关该主题的一件事,我会告诉他。 …

函数分组学通MongoDB——第三天 细说高级操作

改章节个人在广东喝咖啡的时候突然想到的...明天就有想写几篇关于函数分组的文章,所以回家到后之就奋笔疾书的写出来发布了 明天跟大家分享一下mongodb中比拟好玩的识知,要主括包:聚合,标游。 一: 聚合 见常的聚合作操…

eps如何建立立体白模_服装立体裁剪教程 结构都是“立裁”出来的 才智服装

核心提示:基础立裁服装立体裁剪是指用白坯布为常用替代物,在人台上直接塑造服装样式,并进行样板制作的技术。由于立体裁剪是设计师主要依靠视觉进行的直观操作的过程,所以它具有激发和展开新的设计思维的功能。一、基础立裁服装立…

平衡抽象原理

使代码复杂易读和理解的一件事是&#xff0c;方法内部的指令处于不同的抽象级别。 假设我们的应用程序仅允许登录用户查看其朋友的旅行。 如果用户不是朋友&#xff0c;则不会显示任何行程。 一个例子&#xff1a; public List<Trip> tripsByFriend(User user, User l…

python编写姓名年龄_python小工具 - alert弹框输出姓名年龄、求和

# 导入tkinter的所有的包里面所有的内容from tkinter import *import tkinter.messageboxasmessagebox# 从Frame派生一个Application类&#xff0c;这是所有Widget的父容器classApplication(Frame):def __init__(self,masterNone):Frame.__init__(self,master)self.pack()self.…

IIS后台网站部署不支持PUT方法 405错误

在web.config文件中添加如下代码&#xff1b;删除模块WebDAVModule <system.webServer><modules runAllManagedModulesForAllRequests"true" runManagedModulesForWebDavRequests"true"><remove name"WebDAVModule"/></mod…

IntelliJ IDEA内部设计

IntelliJ IDEA的第一版于2001年1月发布&#xff0c;当时它是第一个集成了高级代码导航和代码重构功能的Java IDE之一。 2009年&#xff0c;JetBrains开源了其社区版本 。 从那时起&#xff0c;创建了许多基于它的IDE&#xff0c;例如Google的Android Studio。 让我们使用JArc…

TDD:MS自带的单元测试 之 线程模型和执行顺序

背景 我一直在呼喊“不要靠假设编程”&#xff0c;可是我却常常这么做。我用单元测试就是一种基于假设进行编程的反面教材&#xff0c;今天就下决心弄明白它。 主要想弄明白两个问题&#xff1a; 执行的所有单元测试方法的线程模型&#xff0c;是单线程&#xff1f;是多线程&am…

JS下载图片保存在本地

const imgUrl "";// 图片链接const a document.createElement(a);// 这里是将url转成blob地址&#xff0c;fetch(imgUrl) // 跨域时会报错.then(res > res.blob()).then(blob > { // 将链接地址字符内容转变成blob地址a.href URL.createObjectURL(blob);a.…

bat文件名操作_Excel按文件名制作目录,你复制粘贴花一小时,同事只要十秒搞定...

Excel有个特殊操作&#xff0c;那就是对文件夹中上百个文件&#xff0c;用Excel按照文件名制作目录&#xff0c;我们只需要点击对于的超链接就可以快速打开对于的文件。如上图所示&#xff0c;我们的文件夹中包含有26个视频和Excel文件&#xff0c;因为文件数量过多所以我们需要…

整数返回poj1005——I Think I Need a Houseboat

这两天一直在研究整数返回之类的问题,上午正好有机会和大家讨论一下. 原题&#xff1a; Description Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisia…

偷窥JCache API(JSR 107)

这篇文章从较高的层次介绍了JCache API&#xff0c;并提供了一个预告片–刚够您&#xff08;希望&#xff09;开始对此发痒&#xff1b;-) 在这篇文章中...。 JCache概述 JCache API&#xff0c;实现 JCache API支持的&#xff08;Java&#xff09;平台 快速了解Oracle Coh…

electron IPC通信报错Uncaught (in promise) Error: An object could not be cloned.

项目场景&#xff1a; electronreact 问题描述 electron 中用IPC通信 Uncaught (in promise) Error: An object could not be cloned. e Error: An object could not be cloned.at EventEmitter.i.invoke (node:electron/js2c/sandbox_bundle:33)at uploadImg (YakitPluginI…

Linux C中发现无法连接到math.h中的数学函数解决办法

Linux 下使用数学函数 今天在编译一个用到log函数的c文件时&#xff0c;遇到一个错误&#xff1a;/tmp/ccQuh0ns.o(.text0x2bb): In function Compute:: undefined reference to log到网上查了一下这个问题&#xff0c;原因及解决方法如下&#xff1a;出现这个错误是因为编译器…

canvas 圆角矩形填充_一篇文章让你学会你最“害怕”的Canvas,太有意思了

Canvas画布 基本用法<canvas idcanvas width"150" height"150"></canvas> <canvas>看起来跟img标签有点像&#xff0c;唯一不同的是它没有src属性和alt属性。实际上&#xff0c;canvas标签只有两个属性:width和height。 如果没有设置宽度…

通过流而不是列表

开幕式免责声明&#xff1a;这并不总是一个好主意。 我将介绍这个主意&#xff0c;以及为什么它是一个好主意的一些原因&#xff0c;但随后我将讨论一些不太理想的实例。 懒惰 如您所知&#xff0c;我在Python中涉猎的程度几乎与在Java中一样。 我一发现Python就很喜欢生成器。…