1.简介 我们从小接受的教育就是不要撒谎,要做一个诚实的孩子,但是在现实生活中有时候说一个善意的谎言也不是可以的.这里由于服务器各种安全机制的限制和校验,因此我们不得不欺骗一下服务器,今天宏哥就给大家分享Jmeter之IP欺骗. 2.什么是IP欺骗 宏哥这里所说的是在Jmeter使用时候IP欺骗的定义.更专业的定义和宏哥说的是不一样的.ip欺骗就是模拟ip.什么意思呢,一个电脑就只有一个ip地址,当然如果有多块网卡的话,会有多个ip地址,一般服务器上有个网卡,咱们自己的电脑一般都只有一个ip地址…
1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了,实在是忍不了也解答烦了,索性就在这里分享一下吧.权当参考,但是希望对大家有所帮助. 2.为什么要使用分布式测试 (1)Jmeter是基于java程序运行的,在windows上使用Jmeter进行性能测试时,非常耗费客户机的CPU和内存,如果并发数稍微大一点(比如100.1000...并发),单台电脑…
1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多数的服务器都是Linux系统,因此就需要我们在Linux系统上安装JMeter.因此,宏哥今天讲解和分享学习下如何在Linux下安装Jmeter,因为Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK.宏哥这里安装的安装包都是在线下载安装包,而不是从Windows系统下载好…
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了.听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以. 2.配置文件 在%JMETER_HOME%\bin(or $JMETER_HOME/bin)目录…
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了.听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以. 2.配置文件 在%JMETER_HOME%\bin(or $JMETER_HOME/bin)目录…
1.简介 运动战是一种军事作战方式,依托较大的作战空间来换取时间移动兵力包围敌方,以优势兵力速战速决,运动战的运用归为这样一段话"避敌主力,诱敌深入,集中优势兵力逐个击破".今天宏哥也当一回将军,指挥jmeter在运动中消灭敌人.好了闲话少说,回归正题,今天主要是讲解和分享:在jmeter运行中来更改jmeter的负载. 2.运行中来更改jmeter的负载 从文字中,我们很容易看出意思就是在jmeter测试运行脚本过程中,但是在不停止运行脚本的情况下修改jmeter的负载压力,来达到我…
1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限网速,更加符合实际,所以我们也需要模拟弱网进行测试. 2.查看官网文档 参考官网文档:cps属性为了模拟低网速,如下图所示: 3.准备工作 为了测试出真实的响应时间情况,用jmeter模拟弱网进行工作,我们需要修改一下jmeter的配置.就是修改jmeter.properties文件.在安装jmet…
1.简介 JMeter是一款压力.接口等等的测试工具,Jmeter也可以像loadrunner一样监控服务器CPU.内存等性能参数,用来监控服务器资源使用情况,不过需要安装一些插件.JMeter正常自带可以通过Tomcat的/manager/status来监控服务资源使用情况.这种情况只能监控Tomcat支持的资源使用部分.通过本文宏哥主要来说一下如何通过JMeter插件来监控服务器CPU.内存(Memory).磁盘(DisKs I/O).网络(NetWork I/O)等相关资源. 2.下载Jm…
1.简介 这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下. 2.什么是远程运行? 远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一起执行.最常见的场景就是,跑性能测试的时候,一台电脑负载不起需要的线程时,就需要两台或者更多的电脑来启动线程跑测试,线程就相当于是虚拟用户.在网上,通常会说,超过1000个线程时,就不要使用一台电脑跑了,而是选择使用多台电脑一起负载.这个说法并不全对,比如,脚本就写一条insert语句,往数据库中插…
一.概述     Mongo DB 下载下来以后我们应该如何去安装启动和配置才能使用Mongo DB,本篇博客就给大家讲述一下Mongo DB的安装启动及配置详解. 二.安装 1.下载Mongo DB     http://www.mongodb.org/downloads    点击上面链接下载Mongo DB 2.解压Mongo DB 3.配置环境变量 4.检查Mongo DB安装是否成功    Cmd mongo -version 三.启动及其配置详解 启动Mongo DB需要三个文件 M…
1.简介 上大学的时候,第一次听同学说网页爬虫,当时比较幼稚和懵懂,觉得就是几只电子虫子爬在网页上在抓取东西.后来又听说写代码可以实现网页爬虫,宏哥感觉高大上,后来工作又听说,有的公司做爬虫被抓的新闻等等.一直以来,爬虫似乎都是写代码去实现的,今天宏哥心血来潮,试一下能不能不写代码实现网页爬虫了.因此今天文章的主题就是介绍一下 Jmeter 如何实现一个网页爬虫!这里宏哥以爬取博客园首页文章为例实战一下. 2.爬虫原理 Jmeter 的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回的所有…
1.简介 上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中.网上很多漂亮的壁纸或者是美女.妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载. 2.爬虫原理 其实这个和上一篇都是一样的道理,宏哥在啰嗦一遍.Jmeter 的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回的所有 href 提取出来,利用 ForEach 控制器去实现 url 遍历.这样解释是不是很清晰?下面宏哥就来简单介绍一下如何操作. 3.牛刀小试 宏哥这里以一个图片网站…
1.简介 上一篇宏哥讲解了利用jmeter的插件来监控服务器资源,这一篇讲解分享如何使用jmeter的监视器结果监控tomcat性能. 2.准备工作 文章标题中提到jmeter和tomcat,那么只需要准备它们两即可. 2.1tomcat配置用户名密码及监控权限 1.在使用tomcat时,若要使用管理监控功能,需要用用户名密码登录使用,而tomcat7默认是将用户是注释的,所以需要配置后使用,配置文件为根目录下的/conf/tomcat-users.xml文件. 2.看一下官方说明,如下图所示:…
1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. 2.什么是jmeter之跨线程组传递参数 顾名思义就是:使用jmeter工具在两个或者两个以上的线程组之间传递参数. 3.为什么在线程组之间传递参数? 首先往往我们接到一个性能测试任务需要对某一个接口进行压测时不需要每一次请求都取登录(如果每次都登录这样就会影响测试结果),那么遇到这种情况我们就要…
1.简介 上一篇中宏哥已经教你如何通过JMeter来创建一个测试计划(Test Plan),那么这一篇我们就将JMeter启动起来,创建一个测试计划(Test plan),然后宏哥给大家介绍一下测试计划(Test Plan)有哪些元件组成的. 2.测试计划(Test Plan)要素 本节主要描述测试计划的不同部分要素.JMeter中一个脚本就是一个测试计划(Test Plan),也是一个管理单元.JMeter 的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置.…
1.简介 在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到.因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.什么是单选框.复选框? 单选按钮一般叫raido button,就像我们在电子版的单选答题过程一样,单选只能点击一次,如果点击其他的单选,之前单选被选中状态就会变成未选中.单选按钮的点击,一样是使用click方法.多选按钮,就是复选框,一般叫checkbox,就像我们在电子版的多选答题过程一…
1.简介   这一篇宏哥主要介绍webdriver在IE.Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接.举例来说,想必大家都应该用过前几年的12306网站购票,点击新版购票,是不是会出现如下的界面.宏哥又找了一个https的页面,如下图所示: 2.三种浏览器如何处理不受信任的证书 三种浏览器访问网页,弹出证书不信任,需要点击下信任继续访问才行,多为访问https的网页.那么我们在做自动…
1.简介 上一篇宏哥已经介绍了如何在Linux系统中安装Jmeter,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功安装好了,那么今天宏哥就来介绍一下如何在Linux系统下运行Jmeter脚本. 2.具体步骤 2.1创建Jmeter测试脚本 你要在Linux系统中运行Jmeter脚本首先要有Jmeter.在Windows系统中启动jmeter,创建Jmeter测试脚本,这里宏哥以访问我博客首页为例 1.启动Jmeter后,添加线程组,如下图所示: 2.选中"线程组&qu…
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了.听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以. 2.配置文件 在%JMETER_HOME%\bin(or $JMETER_HOME/bin)目录…
1.简介 相对于Loadrunner,Jmeter其实也是可以有测试报告产出的,虽然一般都不用(没有Loadrunner的报告那么强大是一方面),但是有小伙伴们私下问,那宏哥还是顺手写一下吧,今天我们就来学习下,如何输入HTML格式的JMeter测试报告.前面已经介绍, 如果要做性能测试,需要在GUI上设计好你的Test Plan,设置各种场景和负载值,包括多少个线程,多少个用户,循环多少次.设置好了保存,然后用命令行去启动性能测试,查看相关测试结果. 2.Jmeter生成HTML格式报告的架构…
1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好地进行参数化,JMeter提供了一组函数来帮助我们参数化生成需要的数据,这些函数可以函数助手面板来进行编辑.当然函数助手的功能不仅仅是做参数化,还能帮助我们运算.字符编码格式转换.获取运行时参数等功能.下面宏哥介绍和分享一下函数助手中的函数. JMeter提供了很多函数,如果能够熟练使用,可以为脚本…
1.简介 今天分享的就是在上一篇文章的基础上来进行讲解和分享:Badboy使用数据源Excel进行脚本参数化.然后在使用读取的参数进行对比断言. 2.具体场景 Badboy录制一个搜索的脚本,并对搜索内容进行断言,然后将搜索内容和断言内容分别参数化,参数不设置具体值,具体的值要从Excel中读取,读取后值,搜索内容读取Excel的第一列,断言内容读取Excel的第二列.大致场景就是这样,下面我们看一下具体如何实现. 3.具体步骤 1.首先新建一个Excel,这里示例我写得非常简单,由两由数据组成…
(一)事务的概念 谈到数据库的高级应用,不可避免会谈到事务.熟悉mysql的朋友们对事务肯定不陌生,简单来讲事务就是控制一个数据库操作序列要么全部执行要么全部不执行.今天我们就来了解redis中的事务是如何执行和使用的. (二)redis事务的操作 在mysql中,事务的执行通过以下三步: begin 开启事务 commit 提交事务 rollback 回滚操作 而在redis中,事务的执行也主要有三步 multi 开启事务 设定事务的开启位置,后续的所有指令均加入到该事务中 exec 执行事务…
(一)哨兵概述 前面我们讲了redis的主从复制,为了实现高可用,会选择一台服务器作为master,多台服务器作为slave.现在有这样一种情况,master宕机了,这时系统会选择一台slave作为master,然后把宕机的master下线,再通知所有slave新的master是谁.这里就产生了一个问题,master是否宕机.选择哪台slave作为master都是谁来决定的? 在主从复制中由哨兵(sentinel)来完成这些操作,哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现…
jQuery Ajax在web应用开发中很常用,它主要包括有ajax,get,post,load,getscript等等这几种常用无刷新操作方法,下面我来给各位同学介绍介绍. 我们先从最简单的方法看起,处理复杂的ajax请求时,jQuery使用jQuery.ajax()方法进行处理.在jQuery中有一些简单的方法,它对jQuery.ajax()方法进行了封装,使得我们在处理一些简单的Ajax事件时,不需要使用jQuery.ajax()方法,其中有些方法在之前的文章中已经出现过了,相信大家很快便…
1.简介 上一篇文章中,从TestNg的特点我们知道支持变量,那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试.那么如何实现同时启动不同的浏览器对脚本进行测试,且听宏哥娓娓道来. 2.项目实战 2.1创建一个TestNg class 1.首先按照上一篇的方法创建一个TestNg class,命名为:TestDiffBrowse(不需要勾选Beforeclass和Afterclass),如下图所示: 2.或者这样右键TestNG->Create TestNG Class,创建一个Tes…
1.简介 上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划. 2.网络计划实战 通过上一篇的学习,宏哥将其分类为: (1)不需要登录验证身份就可以操作的. (2)需要登录验证身份之后才能操作的. 2.1不需要登录 这里宏哥就拿博客园来举例子,如博客园,你不需要登录验证身份,就可以执行阅读.查找和浏览博客园内的文章(前提是这些文章没有设置“只允许注册的用户访问”). 2.1.1抓包 1.阅读博客园文章 1…
1.简介 前置处理器是在发出“取样器请求”之前执行一些操作.如果将前置处理器附加到取样器元件,则它将在该取样器元件运行之前执行.前置处理器最常用于在取样器请求运行前修改其设置,或更新未从响应文本中提取的变量.前置处理器主要是用来处理请求前的一些准备工作,比如参数设置.环境变量设置等等. 2.预览前置处理器 首先我们来看一下JMeter的前置处理器,路径:线程组(用户)->添加->前置处理器():我们可以清楚地看到JMeter5中共有8个前置处理器(不包括jp@gc开头的前置处理器,这个是宏哥安…
1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如系统登录成功以后我们需要获取SessionId,在后面的业务操作中服务器会验证这个SessionId,获取SessionId这个功能过程就可以用后置处理器中的正则表达式提取器来完成. 2.预览后置处理器 首先我们来看一下JMeter的后置处理器,路径:线程组(用户)->添加->后置处理器():我们…
Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述     PV操作是对信号量进行的操作.     进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒.举例:就像消费者与生产者的关系,说吃馒头把有一个碗能盛下6个馒头,厨师不停的生产馒头,顾客不停的吃馒头,此时厨师与顾客的关系就是同步.(如下图)          下面我就为大家利用java多线程的代码实现这个操作的过程. 二.代…