性能测试
文章平均质量分 67
二两酒馆
测试攻城狮一枚
展开
-
ngrinder部署
本文只说部署,其他细节后续给出ngrinder是一个开源工具,网上也有很多教程,刚开始接触使用ngrinder的时候也拜读过不少前辈们的文章,实施过程还是会有问题,大大小小的坑吧 部署方式有很多种形式 1、单Controller多agent是最常用的方式,但这种方式在规模大的压测时Controller会成为瓶颈 2、分布式Controller和多agent:1)单机部署Contr...原创 2018-08-28 18:30:47 · 5119 阅读 · 3 评论 -
jmeter应用---测试元件介绍(四)
JSR223 Samplerjsr223的采样器允许使用jsr223脚本代码来运行一个取样器。 jsr 223测试元素有一个可以显著提高性能的特性(编译)。从这个特性中获益:使用脚本文件而不是内联它们。这将使JMeter编译它们,如果这个特性在ScriptEngine中可用,并缓存它们。若编译属性设置为true,可以使用脚本文本和检查缓存编译的脚本。 在使用这个特性时,确保脚本代码没有直接在原创 2017-11-28 18:20:28 · 7598 阅读 · 1 评论 -
jmeter应用---测试元件介绍(三)
Java Request使用比较频繁的一个取样器,一般接口测试,用这个足够(特殊要求除外)。 此取样器允许操作实现了org.apache.jmeter.protocol.java.sampler.JavaSamplerClient接口或者继承AbstractJavaSamplerClient抽象类的java类。通过接口的实现,可以使用jmeter控制多线程、输入参数、数据收集。 注意 实原创 2017-11-27 14:11:05 · 5608 阅读 · 0 评论 -
jmeter应用---测试元件介绍(二)
一直准备大促,中断了太久了接上篇 http://blog.csdn.net/yue530tomtom/article/details/78229064取样器FTP RequestFTP控制器可以向FTP服务器发送下载文件和上传文件的请求,如果需要多次向FTP服务器发送相同的请求,可以使用配置元件”FTP Request Defaults “进行配置,减少重复的通用配置。来看看该取样器的样子原创 2017-11-24 16:47:10 · 5612 阅读 · 0 评论 -
jmeter应用---测试元件介绍(一)
概述构成测试计划的基本组件,测试至少包含一个测试计划、一个线程组、一个或多个取样器测试计划新建测试时,默认会有一个测试计划,是指定测试的总体设置的地方。public JMeterTreeModel() { this(new TestPlanGui().createTestElement(),new WorkBenchGui().createTestElement());}public J原创 2017-10-13 18:04:49 · 6804 阅读 · 0 评论 -
btrace 注解
概述在官网的手册中,已经将各类注解做了说明,在本篇中做详细介绍,并结合实际使用做一些demoonMethodOnMethod指定一个BTrace监听点,指定一个java类(或类)、一个方法(或其中的方法)和其中一个特定的位置。当将跟踪程序匹配到指定的位置时,会调用一个BTrace跟踪操作方法。@Retention(RetentionPolicy.RUNTIME)@Target原创 2017-12-04 20:29:34 · 5583 阅读 · 0 评论 -
jmeter应用---逻辑控制器(一)
参考资料:官网概述逻辑控制器控制Samplers执行的顺序;作用域是具体逻辑控制器元件的子节点,就是说放在控制器下面的所有的采样器都会当做一个整体,均受逻辑控制器控制。jmeter提供了多样的逻辑控制器,如下图:jmeter共提供17个逻辑控制器,下面逐个介绍Simple Controller(简单控制器)Jmeter里最简单的一个控制器,它可以组织采样器和其它的逻辑控制器(分组功能),提供一个块的原创 2017-11-29 11:52:25 · 5820 阅读 · 0 评论 -
jmeter应用---逻辑控制器(二)
Switch Controller(Switch控制器)Switch控制器类似交替控制器,与交替控制器不同的是switch控制器每次迭代运行子节点的其中一个,通过给该控制器中的Value赋值,来指定运行哪个采样器,而不是交替执行。有两种赋值方式:数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素,当switch的value超过区间时,执行第0个元素。直接指原创 2017-11-29 16:37:33 · 5354 阅读 · 0 评论 -
jmeter应用---创建测试计划
概述测试计划是描述Jmeter运行时所需的一些列步骤。一个完整的测试计划将包括一个或多个元素,如线程组,逻辑控制器,样品产生控制器,监听器,定时器,断言和配置元素。参考 http://jmeter.apache.org/usermanual/build-test-plan.html添加/删除元素为了方便演示,先打开jmeter软件,默认会有一个测试计划。元素之间有非常明确的层级,就是添加是必须选中一原创 2017-10-13 16:08:50 · 5709 阅读 · 0 评论 -
jmeter源码---StandardJMeterEngine
概述执行jmter tests ,直接用于本地GUI和非GUI调用,或者在服务器模式下运行时由RemoteJMeterEngineImpl启动介绍在JMeterEngineImpl中做了一部分的解释,可以结合着看主要变量灵魂级变量,注意关键字volatileprivate static volatile StandardJMeterEngine engine;构造函原创 2017-09-21 18:26:26 · 10409 阅读 · 1 评论 -
jmeter源码---HashTree
概述该类用于创建测试对象的树结构。树中的每个元素也是树下一个节点的键。它提供了许多方法来添加对象和分支,以及许多检索的方法。HashTree为了方便的原因实现了映射接口。Map和HashTree的主要区别在于,HashTree将数据组织到一个递归树结构中,并提供了操作该结构的方法。特殊的兴趣是@link横贯(HashTreeTraverser)方法,它提供了一种方便的方法,通过实现@link原创 2017-09-22 17:12:56 · 6632 阅读 · 0 评论 -
jmeter源码---核心JMeterEngine
概述JMeterEngine接口被运行Jmeter的测试类实现,此接口共8个方法,其中无参stopTest()是调用的stopTest(boolean now),也可说是7个方法void configure(HashTree testPlan);void runTest() throws JMeterEngineException;default void stopTest(){stopTes原创 2017-09-18 10:52:54 · 8282 阅读 · 0 评论 -
jmeter源码---JmeterUtils
概述此类包含jmeter实用的静态方法介绍getPropertiesloadJMeterProperties():加载jmeter配置文件,如果没有发现,默认使用classpath中的org/apache/jmeter/jmeter.properties getSearchPaths():生成搜索的路径列表,输出的路径以JMETER_HOME/lib/ext开始,并且包含Jmeter配置文件配置的原创 2017-09-15 18:25:10 · 6251 阅读 · 0 评论 -
btrace示例
示例代码被测试的类package com.yl.btraceDemo.impl;import javax.jws.WebService;@WebServicepublic class DemoInfImpl { public int add(int firstParam, int secondParam) { int result =firstParam+secondPara原创 2017-12-04 20:27:33 · 5296 阅读 · 0 评论 -
Btrace1.3.9用户手册
本手册是基于版本1.3.9写的,若软件升级请参考项目(github)对应版本随包用户手册:${projectpath}/docs路径下的usersguide.html概述BTrace 中的B表示bytecode;它是一个可靠的,用来动态追踪Java应用程序的工具。工作方式是动态对运行中的Java程序进行字节码生成。BTrace会对运行中的Java程序的类插入一些追踪操作并与被追踪的目标...原创 2017-07-13 19:06:30 · 6714 阅读 · 0 评论 -
性能测试相关概念、指标
性能是一个很广泛的概念,通常的性能一般都是指服务的快慢和吞吐。确切地说应该是非功能测试,包含压力、性能、稳定性、容量、高可用等等压测常用指标常用指标每秒处理事务(TPS) 每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。事务平均响应时间(Average Transaction Response Time) 每一事务执行所用的...原创 2018-08-22 19:22:29 · 2690 阅读 · 0 评论 -
loadrunner批量添加压力
虽然LR使用很频繁,但是我很少写LR相关的东西,整理资料的时候翻到之前写的批量添加LR压力的小东西——基于ui识别添加压力机,一定程度上节约了时间也减少了手工输入的错误可能性,更主要的是可以把做枯燥的工作的时间用来喝茶背景综合压测时(比如大促演练)基本都是上百台压力机一起搞(各种win、linux等,不同网络),准备测试压测场景变成了体力活实现使用轻量级的sikuli操作...原创 2018-08-16 16:09:23 · 2797 阅读 · 2 评论 -
jmc使用说明
实验JDK版本:jdk1.8.0_73概述JMC:Java Mission Control 伴随着5月份oracle的一份开源声明—-JMC Open Sourced JMC又一次备受关注。JMC是源自JRockit JVM的一套监控和管理工具,Oracle在2013年发布JAVA 7u4(Java 7 Update 40)时将其包含在JDK中,用户不再需要额外下载。使用 J...原创 2018-06-28 18:40:24 · 25362 阅读 · 7 评论 -
jmeter应用-----beanshell的使用
概述BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚...原创 2018-06-29 13:35:49 · 7212 阅读 · 0 评论 -
JMeter插件-----JMXMon插件监控JVM
准备1、以windows为例,本地准备jmeter,这里用的是3.1 2、要监控的jvm配置jmx:-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.r...原创 2018-05-17 19:31:38 · 8016 阅读 · 0 评论 -
定位iowait问题
iowait?是系统因为io导致的进程wait。系统在做io,导致没有进程在干活,cpu在执行idle进程空转,所以iowait的产生要满足两个条件,一是进程在等io,二是等io时没有进程可运行。iowait实际测量的是cpu时间iowait = (cpu idle time)/(all cpu time)iowait并不能反应磁盘瓶颈高速cpu会造成很高的iowait...原创 2018-05-17 18:57:48 · 7269 阅读 · 0 评论 -
linux cpu相关信息
通过/proc/cpuinfo查看cpu信息查看cpu信息[root@localhost ~]# cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 79model name : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.1...原创 2018-04-20 10:35:12 · 4972 阅读 · 0 评论 -
使用jmeter测试https绕过证书实验
背景:由http转https,采购解析https的板卡,评估性能。使用LR测试时发现不同网段的请求有的网段会被拦截(具体原因还未来得及细查)。随后改用jmeter测试。顺便就研究了一下能否绕过https证书,做了个demo记录一下,备用示例一个能用jmeter调用的java请求。添加依赖jar:httpclient相关包、jmeter相关包(ApacheJMeter_core.jar、Ap...原创 2018-04-13 11:35:33 · 10384 阅读 · 1 评论 -
高并发多队列网卡设置CPU亲和性项目记录
之前我转载过一篇smp-affinity的文章https://blog.csdn.net/yue530tomtom/article/details/76216503实例做ssl加速卡(高并发)测试又遇到相同的问题,多队列网卡软中断过高,记录备忘场景:nginx模拟业务服务器,worker不绑定;网卡队列亲和性不设置 结果:那叫一塌糊涂,3w TPS 0号CPU就满了, 其中si多...原创 2018-04-17 12:01:30 · 12234 阅读 · 0 评论 -
linux查看使用中的网卡是否打满
1、查看Linux系统有几块网卡 一般系统默认都有4个,无所谓了管它几个呢~[root@db25440 ~]# ifconfig -aeth0 Link encap:Ethernet HWaddr D4:BE:D9:AA:30:18 inet addr:10.255.254.40 Bcast:10.255.255.255 Mask:255.255.2...原创 2018-04-16 18:31:35 · 13553 阅读 · 1 评论 -
性能参数化大文件处理设想
本篇是个初步设想,mark一下,几次大促和书香节压测发现处理参数化时弊端挺多,想改进一下。现在还得以项目为主,搞完书香节压测我就把它完整实现性能测试一个关键环节是压测参数化数据处理~,电商大促保障又或者新系统上线,系统性能评估、演练都需要给系统比较大的压力(参数化文件或者参数化报文至少上G或者10G的文本) 对于只能使用一次的数据,之前的做法是将数据分块,分别发送到压力机器上(前面的...原创 2018-03-03 17:02:12 · 4848 阅读 · 0 评论 -
windows之间分发文件
背景性能测试,使用分布式压力机进行规模较大的压测时,环境准备阶段需要将测试依赖的文件(测试数据文件、依赖jar包、依赖第三方程序等)拷贝到各个机器上 分布式压力机使用的是linux系统或或者是windows再或者是两者混用linux机器之间cp文件有很多种,而且都很方便,不需要额外装软件,预装的就能实现文件拷贝比如scp、ftp等都能实现 windows之间就比较麻烦了,os中可能都没有启用ft原创 2017-10-11 19:41:05 · 8516 阅读 · 0 评论 -
jmeter写插件
JMeter Gui – TestElement约定在编写任何JMeter组件时,必须注意某些特定的约定——如果JMeter环境中正确地运行JMeter组件,那么它将会运行。本部分描述了组件的GUI部分必须满足的约定。 JMeter中的GUI代码严格地与测试元件代码(这里指逻辑控制代码,下同)分离。因此,当编写一个组件时,将会有一个用于测试元件的类,另一个用于GUI表示。GUI类是无状态的,因此它原创 2017-08-28 16:00:56 · 8386 阅读 · 1 评论 -
jmeter源码---Mainframe
概述创建jmeter主界面,包含菜单、测试树、GUI组件;这里用到最多的是swing相关知识进行主界面的布局,涉及的组件有JTree、JButton、JPanel、JScrollPane、JTextArea、JLabel、JDialog、JSplitPane、JCheckBox、JFileChooser等介绍该类实现了TestStateListener, Remoteable, DropTarget原创 2017-09-15 18:12:11 · 5244 阅读 · 0 评论 -
jmeter源码---gui简单介绍
概述二次开发JmeterGUI的源码需要有swing基础支持的支撑,不熟悉请自行学习,在此不做赘述启动加载src/core中org.apache.jmeter资源包,这是启动jmeter GUI的入口。 jmeter启动的入口类为NewDriver,启动核心为JMeter的start方法,运行完start方法,jmeter的界面就启动完成了。 此包中还有三个类 类名 作用 Dynami原创 2017-09-14 17:40:50 · 6038 阅读 · 0 评论 -
smp irq affinity介绍
概述硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。kernel 2.4 以后的版本利用可编程中断控制器的特性支持把不同的硬件中断请求(IRQs)分配到特定的 CPU 上,这个绑定技术被称为 SMP IRQ Affinity名词解释IRQ: Interrupt ReQuest中断请求,IR原创 2017-07-25 19:15:55 · 19582 阅读 · 0 评论 -
jmeter---正则表达式
概述JMeter包含模式匹配软件Apache Jakarta ORO,在Jakarta 网站上有一些文档,例如关于 模式匹配字符的总结,也有关于 OROMatcher用户指南的文档。 模式匹配非常类似于Perl中的模式匹配。Perl的完整安装将包括大量关于正则表达式的文档——查找perlrequick, perlretut, perlre 和 perlreref。 值得强调的是”contains原创 2017-08-02 10:07:32 · 14192 阅读 · 0 评论 -
jmeter配置
Jmeter的安装网上一大堆,不在赘述,就是两个主题:正确配置JDK(包括版本)下载最新版Jmeter运行,写个demoJmeter配置如果需要改变JMeter运行时的属性,你需要改变在/bin目录的user.properties文件,或者创建你自己的jmeter.properties文件并且在命令行指定它。注意 在文件user.properties中可以定义附加的JMeter属性,改变us原创 2017-08-01 13:32:49 · 5800 阅读 · 0 评论 -
linux命令---top
这是我第一次写linux命令篇,提醒一点请学会查看系统自带的手册—有问题找”男人(man)”,一句玩笑莫当真~~ 所有命令截图是基于centos7概述top命令是Linux下常用的性能分析工具,能够显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对...原创 2017-07-17 20:05:24 · 5612 阅读 · 0 评论 -
linux命令---mpstat
概述mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。应用mpstat的语法mpstat [ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { cpu [,…原创 2017-07-18 12:03:28 · 5552 阅读 · 0 评论 -
linux命令---iostat
概述iostat 用于输出CPU和磁盘I/O相关的统计信息。iostat manual page应用命令格式iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | … } [ device […] | ALL原创 2017-07-19 15:20:44 · 5692 阅读 · 0 评论 -
linux命令---pidstat
概述pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat manual page应用命令格式pidstat [ -C comm ] [ -d ] [ -h ] [原创 2017-07-19 16:52:59 · 6032 阅读 · 0 评论 -
linux命令---netstat
概述Netstat 是一款命令行工具,用于显示各种网络相关信息,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字应用命令格式根据man手册有很多参数(截图了偷个懒) 参数说明介绍一下常用参数(同样偷懒一下下) Options Details -a 等价参数:- -all,显示所有选项,包括监原创 2017-07-19 18:07:35 · 5241 阅读 · 0 评论 -
linux命令---vmstat
概述vmstat命令: 是一个查看虚拟内存(Virtual Memory)使用状况的工具,用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况vmstat选项 选项 含义 -a 显示活跃和非活跃内存 -f 显示从系统启动至今的fork数量 。 -m 显示slabinfo -n 只在开始时显示一次各字段名称。 -s 显示内原创 2017-07-17 21:06:31 · 5250 阅读 · 0 评论 -
linux命令---dstat
概述 先献上【官网】和【github】本文中所有资料的均源于此,写的不清楚的地方可以翻阅一下官方文档 dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat扬长避短,即克服了这些命令的局限又增加了一些额外的功能,不但拥有更多的监控项,也更灵活。dstat在性能测试、基准测试和排除故障过程中可以很方便监控系统运行状况。 dstat可原创 2017-07-19 19:16:19 · 25097 阅读 · 0 评论