转载 程序员技术练级攻略 本文转载自陈皓(http://coolshell.cn/articles/author/haoel) 博客: http://coolshell.cn/articles/4990.html 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mai...
Jenkins JFR Plugin Jenkins JFR 插件主要是用来解析JRockit Flight Record (不了解JRockit 飞行日志可以google一下),并且以SVG图形展示CPU,MEM等情况。想进一步了解代码的可以戳这里:https://github.com/WalseWu/jenkins-jfr。 言归正传,回到hudson plugin,关于h...
开发Hudson / Jenkins 插件 接上篇,有了JFR Report,我们可以通过JMRC分析,但是这样的话还是不够方便,所以想自己开发一个Jenkins插件来解析展示,本文先做个开发前的准备工作:开发Hudson / Jenkins 插件首先一下准备工作:1. JDK1.6 或更新版本2. MAVEN 2 3. maven 库settings设置增加:<pluginGroups>...
利用JFR监控WLS 前阵子Jenkins上builds起伏很大,有些UnitPerfTes的耗时很大,一度使得WLS集群表现很糟糕,于是我希望为UnitPerfTest框架加上JRockit Flight Recording(JFR)模块,具体是这样的:1)在每个节点开始跑 Task之前能启动该节点上的一个JFR;2)当task跑完之后结束JFR;3)从每一个节点产生的JFR report...
Try to Test WLS application with JMeter JMeter的各组件以及如何扩展已完成,现在要利用JMeter对Weblogic Server 的一些应用/组件的性能测试。简单说就是利用JUnit 驱动,在单元测试中驱动JMeter,集成WLS完成一些底层的并发测试,最简单的一个场景:比如在某个单元测试性能评测中,我要测试 n 个并发,其中2%做写操作,98%做读操作。最终的结果都会在Hudson上汇总,看到JUnit Rep...
Programming with JMeter-- Sampler and Listeners 完成JMeterEngine, ThreadGroup 和 JMeterThread的整合,外围的设施差不多搞定大半了,接下来是把具体的测试逻辑整合进来,既然是框架层面的,需要通用一点,方便客户端自己定义测试逻辑。不过在此之前,还需要研究下Sampler和Listeners,这样对JMeter的整个流程会有全局的把握。先看下图: SampleListener和T...
Programming with JMeter-- JMeterThread 到上一篇ThreadGroup为止,基本上在项目中可以完成对JMeterEngine / ThreadGroup 的整合,现在要来分析下JMeterThread,以便更好的集成到项目中。 一个 JMeterThread 好比一个vu(虚拟用户),他的创建和启动已经在ThreadGroup这一篇中完整的分析,我们是将JMeterThread委托给一个叫做Daemonizable...
Programming with JMeter-- JMeterThread 到上一篇ThreadGroup为止,基本上在项目中可以完成对JMeterEngine / ThreadGroup 的整合,现在要来分析下JMeterThread,以便更好的集成到项目中。 一个 JMeterThread 好比一个vu(虚拟用户),他的创建和启动已经在ThreadGroup这一篇中完整的分析,我们是将JMeterThread委托给一个叫做Daemonizable...
Programming with JMeter-- ThreadGroup 项目搞一段落,总算有时间回来继续。 上一篇写到JMeterEngine会驱动JMeter ThreadGroup启动Test Threads 执行测试,其本身也是一个Runnable,这里把测试驱动(JUnit或者其他类似main之类的)看作主线程(main thread)的话, JMeterEngine作为第一层子线程(First Child Thread),所以...
Programming with JMeter-- JMeterEngine JMeterEngine接口比较简单,总共7个方法,但是没javadoc,所以光看接口的话只能凭方法名猜测了。我们这里简要分析下:1. configure(HashTree testPlan) 前面博文已经说过HashTree是JMeter跑测试依赖的数据结构,也提到过HashTree的结构一般是TestPlan-->ThreadGroup-->Samp...
Programming with JMeter-- Initialization 学 习了使用JMeterEngine简单的运行测试之后,不着急马上看内部的实现,先了解一下在启动JMeterEngine之前所做的一些初始化工作,这 个对于正确的代码启动JMeterEngine很有必要。下面是启动JMeterEngine之前的初始化流程简要描述: 1) Parse commandLine,将命令行参数、以及一些内置的帮助信息封存在CLArgsParser实例...
Programming with JMeter 习惯于JUnit做功能方面unit test,而对于有些Test需要有一定的压力来模拟一定并发的读和写,借助JMeter来实现这样的测试框架是很不错的一个选择,一来减少很多工作量 (只需少量的定制:比如实现自己的ThreadGroup来定制并发线程的创建和执行,实现自己的Sampler来定制测试目标类的实例化和运行),二来可以很方便使用Hudson进行持续集成, 这对于利用Hudson进行...
Linux 之mount镜像文件 本文转自:http://my.oschina.net/toyandong/blog/65002 使用mount挂载ubuntu虚拟机所在的img文件的时候,执行:“sudo mount -o loop xxx.img /mnt/xxx”,系统提示:“mount: you must specify the filesystem type”加上”-t ...
eclipse 和 weblogic又各罢一次工 环境迁移,永远不会那么顺利的,一些意想不到的错误时有出现,这些都需要有耐心去查看、google、慢慢摸索解决。由于linux supprt模块只能在特定的环境下运行和测试,那我前期的开发环境也变得复杂起来(要不写的代码都没法运行),一般的虚机是不行了。保险期间,只能迁移到cloud vm,心想申请个cloud vm玩玩应该也不错。时间紧张,先用个现成的吧,呵呵。 ...
linux下装Oracle-XE记 本来想偷懒一下,装个Oracle-xe精简版,节省点空间(压缩包不到300M),也省点时间,没想到木有控制好风险,付出的时间远远高出预计。安装rpm文件是从TaaS那里考过来的,自己的产品嘛,又有自己人背后支持,我就放心大胆的去装了,再加上之前在虚机上装过,信心满满,怎么说半个小时就搞定了吧。 一系列命令之后,控制台出现安装成功的输出信息,紧接着config下,sud...
Linux开发环境小记 发发牢骚,最近因为负责一个linux support的模块,在几台虚机之间切换感觉很不爽,果断把整个开发环境切换到Linux 下(Oracle Enterprise Linux 5),各种不爽的问题出现,记录两个: 一是eclipse切换workspace莫名其妙的错误:Workspace in use or cannot be created,choose a ...
利用JMX统计远程JAVA进程的CPU和Memory 从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存、GC、线程、锁、class、甚至操作系统层面的各种信息,本文就简单的介绍一种利用JMX对JAVA进程进行CPU、堆内存使用的监控。可能有人会觉得没必要这样做,因为用jconsole之类的工具都能做到,而且会...
Centos 忘记密码 最近比较忙又比较懒,好久没有进CentOS系统了,今天突然想起个事情,想进去,却发现忘记密码了,悲催啊!幸好网上教程一大堆。重置还是比较容易的,要不然真的悲剧了。主要也就没几步:1. 在grub画面时,用上下键选中平时启动linux选项,然后按e键进入edit模式 2. 然后选择kernel,再按e进入edit模式 3. 修改刚刚选中命令行,加入single,按b(启动)4....
Spring Security与BlazeDS集成的FlexSession Invalid问题 先说现象:当用户登录以后,如果点击浏览器的后退按钮回到登录页面,这个时候用浏览器的前进按钮是可以再回到主页面的,但如果再想通过输入用户名/密码登录的时候,就会发现登录不了,系统会一直跳转到登录页面。查看后台的话会发现这个是因FlexSession invalid Exception 引起的。 仔细想想觉得系统不应该会有这种bug啊,但是不管你觉得会不会,问题出现了,...
从BeanDefinition到Bean 当BeanDefinition注册完毕以后,Spring Bean工厂就可以随时根据需要进行实例化了。对于XmlBeanFactory来说,实例化默认是延迟进行的,也就是说在getBean的时候才会;而对于ApplicationContext来说,实例化会在容器启动后通过AbstractApplicat...