Docker数据卷
数据卷数据卷核心作用:用来实现容器与宿主机之间数据共享
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
数据卷 可以在容器之间共享和重用
对 数据卷 的修改会立马生效
对 数据卷 的更新,不会影响镜像
数据卷 默认会一直存在,即使容器被删除
注意:数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。
数据卷操作:
自定义数据卷目录:docker run -v 绝对路径:容器内路径
自动创建数据卷:docker run -v 卷名:容器内路径
Docker数据卷常用命令1. 创建数据卷
docker volume create 数据卷名
12[root@localhost ~]# docker volume create infoinfo
2. 查看数据卷
查看当前所有的数据卷:docker volume ls
1234[root@localhost ~]# docker volume lsDRIVER VOLUME NAMEloca ...
Jmeter组件
之前我们已经简单的完成了一个测试计划的过程,但是我们根据模板生成的测试计划,在左边一栏有很多项,这些是干什么的呢?
这些项在Jmeter中,都是Jmeter的组件,我们的测试计划都是有Jmeter的组件组合而成的,Jmeter提供了多种丰富的组件,我们通过组合这些组件,可以开发出符合自己测试场景jmeter脚本。
接下来,让我们认识这些常用组件
1. 测试计划(Test Plan)启动JMeter之后,就默认打开了一个测试计划,测试计划用来描述一个性能测试,包含于本次性能测试相关的所有执行步骤以及报表。
一个完整的测试计划包含:一个或多个线程组、逻辑控制、取样发生控制、监听器、定时器、断言和配置原件。
2. 线程(Threads(Users))相当于LoadRunner中的虚拟用户,每个JMeter测试计划的第一步就是添加线程组。在线程组里设置要模拟的并发用户量、并发时间或并发次数,线程的启动频率。
JMeter的线程组分为以下3类:
setUp Thread Group:相当于Junit的setup,进行测试前的初始化工作,也就是相当于LoadRunner脚本中的init ...
Jmeter介绍
官网地址:https://jmeter.apache.org/
什么是Jmeter官网介绍:
12The Apache JMeter™ application is open source software, a 100% pure Java application designed to load testfunctional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
翻译:
Apache JMeter™应用程序是开源软件,一个100%纯Java应用程序,设计用于负载测试功能性行为和度量性能。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试函数中。
简单来说Jmeter是个开源的性能测试工具, 使用java实现。 起初Jmeter是为测试web应用而设计的, 在后来的发展中Jmeter加入了其它的一些功能。
Jmeter能做什么Apache ...
Jmeter逻辑控制器
问题有这样一个场景:
连续发10个相同的请求
其中前两个做特殊处理
连续复制10个请求(不是增加线程数),将其中两个做处理
思考
这样做真的好吗?
如果脚本非常庞大呢?
如果需要做选择操作呢?
这时Jmeter的Logic Controller逻辑控制器起到了控制脚本的执行顺序。
1. Simple Controller简单的Controller
The Simple Logic Controller lets you organize your Samplers(组织你的采样器) and other Logic Controllers. Unlike other Logic Controllers, this controller provides no functionality beyond that of a storage device.就是一个存储设备,需要跟采样器结合,将需要的采样器组合起来
提供一个块的结构和控制。更方便,更清晰
嵌套其他的Controller
适用场景——都可以使用,只是将相关联的东西放在一起,脚本看起来简洁清晰,自身没有特点
2. L ...
Jmeter属性
查看属性组件Test Plan右键 -> Add -> Non-Test Elements -> Property Display
添加Jmeter属性组件中已经显示了配置的系统和Jmeter属性,那么Jmeter的属性在哪里配置呢?Jmeter的属性是在Jmeter的配置文件,该配置文件位于目录%JMETER_HOME%/bin下的jmeter.properties中
打开该文件,进行对比,目前配置文件中的信息与组件中显示的一致。
接下来,我们进行属性的添加及使用
打开jmeter.properties配置文件,在最后一行添加数据search=jmeter
保存文件,并重启Jmeter
再次添加属性组件,查看内容,发现已经有我们设置为属性了
获取属性,这时我就要使用Jmeter提供的函数助手了
点击顶部工具栏的Tools -> Function Helper Dialog
打开后,找到获取属性的函数
设置获取属性函数
使用属性,为Test Plan添加线程组及HTTP取样器,我们请求百度搜索,将配置属性传入
执行后查看结 ...
Jmeter录制与回放
关于录制和回放功能在jmeter2.1版本之前, jmeter应该是不支持录制和回放功能的, 那时候如果需要录制jmeter的性能测试脚本的话, 就需要使用第三方工具——badboy。
现在jmeter已经支持脚本的录制功能了, 但录制的体验相对于badboy来说还是差了一些。 不过聊胜于无, 对于性能测试的入门者来说, 录制回放功能可以让大家对性能测试脚本开发的过程有个非常感性的认识。
不过录制脚本始终只是减轻工作量的一个手段, 新手同学千万不要认为学会了录制回放就等于是学会了性能测试, 学会录制回放只能代表你有机会真正的入门性能测试, 这只是起点, 而不是终点。
测试场景测试场景是: 在必应(bing)搜索引擎中搜索关键字jmeter。 我们对搜索的结果并不关心, 只要请求返回的状态码是200, 我们就认为该请求是成功的, 有效的
准备录制
打开jmeter
点击Templated, 选择Recod,点击Create后,设置参数
点击HTTP(S) Test Script Recorder
点击启动按钮, 如下图所示
启动代理之前,我们需要进行一些配置
进行配置后 ...
Jmeter采样器
采样器是用来真正产生请求,压力的。
这些采样器,或多或少都对应着不同的协议,想做好性能,就要理解相关的协议。
注意里面的AJP是什么呢?AJP(tomcat是基于二进制传输的一种方式)和HTTP这两种都是对HTTP协议发送请求的。
采样器设置
HTTP请求协议(Protocol)。 支持3种协议: HTTP,HTTPS, FILE。 默认是: HTTP
HTTP请求Implementation。 选择实现方式。 有下面几个选项:
空。 也就是不选。 这时候jmeter就回去找jmeter全局属性的jmeter.httpsampler的值, 如果没设置的话就用HttpClient4。 一般情况下, jmeter.httpsampler的值是没有配置的, 所以选空基本上就等于选HttpClient4
HttpClient3.1。 jmeter 3.0后就废弃了,注意:新版本已经不存在该选项
HttpClient4:基本上是系统默认值了, 不知道怎么选的时候就选这个
Java: jvm的标准实现, 不支持很多扩展的http方法, 所以不清楚的适合就不要选这个
离线调试HTTP镜像 ...
Jmeter测试计划
怎么理解测试计划在我们打开Jmeter界面的时候,我们会发现在界面的左侧就有一个Test Plan(测试计划),在此我们要理解Jmeter的测试计划的概念,这个可不是我们手工测试时候的测试计划,比如一共有3000个测试用例,一共有五名测试同学,一共需要三天测试时间来执行这些测试用例等等。
jmeter的测试计划其实就是测试场景。 比如我们能很自然的想到: 我有个web测试的场景,在这里场景里, 我需要模拟100个用户同时访问我们系统首页的情况。 这个场景的目的是为了验证系统首页能不能支持100个用户的同时访问。
以web的性能测试为例, jmeter的测试计划应该包含下面的一些要素:
用户数,这个测试场景究竟需要模拟多少个用户同时访问站点的情况;
测试的站点, 这个场景测试哪个站点;
测试的具体页面, 这个场景究竟测试该站点的哪个页面;
测试报告, 测试的结果需要用测试报告来展现;
总而言之我们可以简单的把测试计划理解成测试场景。 尽管这样理解不太精确, 但对于初学者来说尽可能的多思考有意义的问题, 尽可能的少思考一些无足重轻的问题, 这是非常有必要的。
创建测试计划我们的第一个j ...
Jmeter变量
变量什么是变量?我们可以这么理解把变量想象成是快递。 拿快递的时候, 快递小哥会喊: 张三的快递, 李四的快递等等, 每个快递都是有名字的, 这个名字就是区别快递归属的关键信息。 同样变量也有名字, 这个名字就叫做变量名。
变量的主要作用,就是用来存储信息,然后在计算机程序中使用这些信息。
通过给变量赋值,也将数据与一些能够描述的名字连接起来,简单说,就是给数据一个能让人理解的名字,12可以指年龄,也可以指距离,所以,需要通过这个定义,12就有了不同的含义。
变量的值,最终是存储在内存中。
我们已经了解什么是变量,之前我们已经学习了Jmeter的属性,这就是一种全局变量的定义和使用,我们接下来学习Jmeter其他几种方式的变量定义和使用。
TestPlan(测试计划)定义变量
定义变量
引用变量
执行结果
User Defined Variables(用户自定义变量)
添加组件
定义变量
引用变量
执行结果
注意:User Defined Variables这个组件非常特殊,不管这个组件放到哪,里面的变量,所有线程都可以调用。
变量的声明和使用我们现 ...
Nginx安装
Nginx安装安装方式一:rpm的Nginx(了解)安装步骤:
建立yum源
1yum install epel-release -y
查看nginx源
1yum list all | grep nginx
安装nginx
1yum install nginx -y
查看已安装的nginx,列出安装nginx相关目录
1rpm -ql nginx
启动nginx
12345678# 查看nginx启动目录rpm -ql nginx | grep bin# 查看帮助文档/usr/sbin/nginx -h# 启动/usr/sbin/nginx# 查看端口号netstat -tnlp | grep :80
nginx启动后,查看进程
1ps -ef | grep nginx
注:会启动两个进程master和worker
查看nginx log
1cd /var/log/nginx
安装方式二:tar.gz的NginxNginx的安装方式有多种,本次安装是用tar.gz,在Linux(CentOS7)环境下安装,由于在安装Nginx的时候,需要提前安装依赖,因此我们全部写到S ...