Jmeter性能测试利器

摘要:
开发语言操作系统数据库测试工具网络知识业务知识性能测试的目的是获得数据库的最佳容量。测试系统对停机、节点故障等的响应。性能测试工作流需求分析-性能指标开发-脚本开发-场景设置-监控部署-测试执行(并发压力)-性能分析-性能调整-测试执行-并发压力)—性能调整--测试报告4。公共系统应用程序分层架构MVC架构。
一、性能测试整体认知

1.性能测试技能树:

开发语言
操作系统
数据库
测试工具
网络知识
业务知识

性能测试的目的

发现性能瓶颈

2.性能测试的分类

性能测试是一个非常广泛的概念,包括的很多方面的测试,也可称之为非功能测试。

自动化测试属于功能测试的范围,由于其测试方法要求测试人员拥有一定的代码能力,座椅被单独分成为一个测试模块。

  • 负载测试:通过逐步加压的方法,达到既定的性能阈值的目标。阈值的设定应是小于等于某个值,如 CPU 使用率小于等于80%。

  • 压力测试:通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态,简单粗暴的解释就是什么条件下能把系统压崩溃。

  • 并发测试:在同一时间内,多个虚拟用户同事访问同一模块、同一功能,通常的测试方法是设置集合点。

  • 容量测试:通常是指数据库层面的,目标是获取数据库的最佳容量的能力。又称为容量预估,具体测试方法为在一定的并发用户,不同的基础数据量下,观察数据库的处理能力,即获取数据库的各项性能指标。

  • 可靠性测试:有称为稳定性测试或疲劳测试。是指系统在高压情况下,长时间的运行系统是否稳定。如 CPU 使用率在80%以上,7*24小时运行,系统是否稳定。

  • 异常测试:又称为失败测试。是指系统架构方面的测试。如在负载均衡架构中,要测试宕机、节点挂掉等情况系统的反应。

3.性能测试的工作流程

需求分析 - 性能指标制定 - 脚本开发 - 场景设置 - 监控部署 - 测试执行(并发-压力)- 性能分析 - 性能调优 - 测试执行(并发-压力)- 性能调优 - ... - 测试报告

4.常见系统应用分层架构

MVC架构,分块测试能最大程度最优滴发现性能瓶颈。自低向上测试

  • 显示层(view):Web、Android、IOS、H5
  • 逻辑控制层(controller):Api
  • 数据存储层(model):MySQL、MongoDB、Redis...

5.性能测试指标定义

  • 事务:从客户端发起的一个或多个请求(这些请求组成一个完整的操作),到客户端接收到从服务器返回的响应,是一个闭环操作的过程。
  • **TPS(Transaction Per Second) **:每秒钟系统能够处理的事务数
  • 请求响应时间:从客户端发起的一个请求开始,到客户端接收到从服务器返回的响应。整个过程所耗费的时间。
  • 事务响应时间:事务可能是由一个或多个请求组成的,事务响应时间主要是针对于用户的角度而言,如转账(中国银行发起-招商银行接受-招商银行反馈收到-中国银行减去转账数)
  • 并发:没有严格意义上的并发。并发总有先后,无论差距是1毫秒或者是1微妙,总有一个时间差。所以并发将的是一个时间范围内,比如1秒内。(如:双十一秒杀同一商品;双十一秒杀不同商品秒杀)
  • 并发用户数:同一单位时间内对系统发起请求的用户数量。
  • 吞吐量:一次性能测试过程中网络上传输的数据量的总和。
  • 吞吐率:吞吐率=吞吐量/传输时间,单位时间内网络上传输的数据量。
  • 点击率:每秒钟用户向服务器提交的请求数。这个指标是 web 应用程序特有的一个指标,可以想象为每秒钟用户总共在页面上进行多少次点击动作,但是需要注意的是一次鼠标单击的操作后,客户端有可能向服务器发送了多少次请求。
  • 资源使用率:对不同的系统资源的使用情况,如 CPU、内存、IO 等

6.性能测试的需求分析

  • 分析的目的

      明确测试指标
      明确测试场景
    
  • 新系统

      同行业比较
      业务预期
    
  • 老系统

      对比以往 用户使用行为及用户量
    

7.性能测试工具

常用工具:

LoadRunner
JMeter

LoadRunner与JMeter对比

二、JMeter深入了解

1.JMeter安装

1.1 Windows环境安装

1.【[JMeter下载地址](http://jmeter.apache.org/download_jmeter.cgi)】
2. 配置环境环境变量:
    电脑桌面 -—> “计算机”图标 -—> 鼠标右键选择“属性” -—> 点击高级系统设置 -—> 高级 -—> 环境变量 -—> 系统变量    
    创建JMETER_HOME="JMeter的安装路径"
    新建或编辑CLASSPATH=";%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;"
3. 在安装目录bin目录,点击 JMeter.bat 启动 JMeter 工具。

JMeter控制台

1.2 Linux环境安装

2.初始JMeter

JMeter的组成:

测试计划

线程组:(1)断言、定时器、监听器、配置元件、后置处理器
        (2)逻辑控制器
        (3)Sampler
        
JMeter实现多并发
    线程组:负载发生器,用多线程或多进程的方式来模拟用户的使用行为。JMeter是已线程的方式来进行模拟用户的并发访问的。

JMeter的组成

3.JMeter实现多并发

4.JMeter实现逻辑分支控制

逻辑控制器:用来控制测试脚本的逻辑判断,也可以理解为如何控制脚本的运行。例如:如果控制器,就是当满足什么样的条件后执行哪一步操作。

添加逻辑控制器

5.JMeter实现配置管理

配置元件:用来提供一些配置相关的信息,如 Http 请求头、cookie 管理,提供参数化数据。还可以进行用户自定义变量等配置,用来定义常量等。

配置元件

Jmeter性能测试利器第6张

三、Linux服务器监控性能测试

1.性能测试范围

  • 测试目的:发现服务器的性能瓶颈。配置的不同能够承载的最大任务树不同,能够承载的压力也不同。

  • 测试范围及性能指标

      CPU:车间工人
      内存:临时存储货物的仓库
      磁盘:仓库
      网络:仓库外的道路
      版本:仓库的智能化程度
    

2.测试与生产的环境配置不同?

多次压测后的性能预估

3.进程与线程

进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。

线程:是进程的一个实体,是CPU调度和分牌的基本单位。他是比进程更小的独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中比不可少的资源。一个线程可以创建和撤销另一个线程。

区别

一个线程只能属于一个进程,而一个进程可以拥有多个线程。线程是进程工作的最小单位。
一个进程会分配一个地址空间,进程与进程之间不共享地址空间,即不共享内存。
同一进程下的不同的多个线程,共享父进程的地址空间。
线程在执行过程中,需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。
线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

优缺点

进程优点:
    每个进程相互独立,不影响主程序的稳定性,子进程奔溃不影响其他进程。
    通过增加CPU,就可以扩大性能。
    可以尽量减少线程加锁与解锁的影响,极大的提高了性能。
进程缺点:
    逻辑控制复杂,需要和主程序交互。
    多进程调度开销大。

线程优点:
    程序逻辑和控制方式简单。
    所有线程可以直接共享内存和变量等。
    线程方式消耗的总资源比进程方式少。
线程缺点:
    每个线程与主程序共用地址空间,最大内存地址受限。
    线程之间的同步和加锁不易控制。
    一个线程的崩溃可能影响到整个程序的稳定性。

4. 服务器实时内存监控

# Linux帮助命令,可以查看所有命令的使用方法
man

# 实时监控命令
top
# 实时监控系统的运行状态,并按CPU及内存等进行排序。
#       -h 帮助
#       -p 监控指定的进程。监控多个监控室,进程ID已逗号分隔。
# top任务区命令
#       M 按内存使用率排序
#       P 按CPU使用率排序
#       z 彩色/黑白显示
# load average -- 系统的运行队列的平均利用率,也可认为是可运行进程的平均数(表示在最后1分钟、5分钟、15分钟的平均负载值)。
# 【备注:在单核CPU中load average的值为1时表示满负荷状态。同理在多核CPU中满负荷的load average的值为1*CPU核数】
top -hv | -bcHiOSs -d secs -n max -u | U user -p pid(s) -o field -w [cols]


# 内存监控
vmstat
# 可以监控操作系统的进程状态、内存、虚拟内存、磁盘IO、CPU的信息。
#   -S 使用指定单位显示
vmstat [-a][-n][-S unit][delay[count]]
free
# 能够监控系统的内存使用状态
# 参数解释:
#       total 总计屋里内存的大小
#       Used 已使用的内存大小
#       shared 多个进程共享的内存总额
#       buffers/cached 磁盘缓存的大小

5.实时监控-CPU

# 可以查看多核心CPU中每个计算核心的统计数据
mpstat
mpstat [-P{|ALL}[internal [count]]]
# 参数解释:
#       -P {|ALL}监控那个CPU,CPU的取值【0,CPU个数-1】
#       internal 相邻的两次采样的间隔时间
#       count 采样的次数,count只能和delay一起使用
# 使用注意:
#       当没有参数时,显示系统启动以后所有信息的平均值
#       当有internal时,第一行的信息自系统启动以来的平均是,从第二行开始输出为前一个internal时间段的平均信息。

6.实时监控-网络

# 用于显示本机网络链接、运行端口、路由表等信息
netstat
# 参数解释:
#       -n 拒绝显示别名,能显示数字的全部转换为数字
#       -l 仅列出有在 Listen(监听)的服务状态
#       -p 显示建立相关链接的程序名
#       -t 显示TCP相关选项
#       -u 显示udp相关选项
#       -i 显示自动匹配接口的信息
#       -c 每隔一个固定时间,执行该 netstat 命令

实时监控-网络

6.实时监控-磁盘监控

# 是对系统磁盘IO操作进行监控的,它的输出主要显示磁盘的读写操作的统计信息,同时给出CPU的使用情况。
iostat
# 参数说明
#       -x 输出指定要统计的磁盘设备名称,默认为所有磁盘的设备。
iostat -x sda 1

7.万能命令-sar

sar -- (System Activity Reporter 系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告
    (1)文件的读写情况
    (2)系统的调用的使用情况
    (3)磁盘I/O
    (4)CPU效率
    (5)内存使用状况
    (6)进程活动及IPC有关的活动
    
# 参数说明
#   n 和 t 组合定义为次数和采样间隔
#   -o file将命令结果以二进制形式放在file中
# options为命令行参数
#       -A 所有报告的总和
#       -u CPU利用率
#       -v 进程、节点、文件和锁表状态
#       -r 显示系统内存的使用情况
#       -B 内存分页情况
#       -b 缓冲区使用情况
#       
sar [options][-A][-o file] t [n]

7.进程追踪命令-strace

# 是一个集诊、调式、统计与一体的工具,用strace对应用的系统调式和信号传递的跟踪结果来对应用进行分析,以达到解决问题或是了解应用工作过程的目的。
# 参数说明
#       -p 跟踪指定的程序
#       -f 跟踪由fork子进程系统调用
#       -c 统计每一系统调用的所执行的时间,次数和出错的次数
#       -t 在输出中的每一行前加上时间信息,-tt时间确定到微秒级。
#       -e 输出过滤器,通过表达式,过滤掉不想要的输出
#       -o filename  默认将strace的结果输出到stdout,通过-o可以将输出写入到filename文件中

8.Linux监控工具-nmon

nmon是一种在Linux操作系统中广泛使用的监控与分析工具,nmon所记录的信息是比较全面的,能够在系统运行过程中实时地捕捉系统资源的使用情况,并且输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。

nmon

nmon
# 参数说明:
    -f 必选参数,并且必须放在第一个,就是输出文件;输出的默认文件名是hostname_date_time.nmon
    -F <filename> 和-f一样,自定义文件名称
    -s 采集保存数据的频率
    -c 采集数据次数
    -t 输出最消耗资源的进程数据
    -h 查看帮助

nmon_analyser: nmon analyser的作用就是分析nmon数据采集后的结果,nmon analyser需要接祖Excel的宏。WPS默认没有安装宏,需要下载插件

Jmeter性能测试利器第9张

Jmeter性能测试利器第10张

Jmeter性能测试利器第11张

Jmeter性能测试利器第12张

Jmeter性能测试利器第13张

9.Linux下的定时任务

crontab

Jmeter性能测试利器第14张

crontab的启动

crontab的服务权限

Jmeter性能测试利器第15张

Jmeter性能测试利器第16张

Jmeter性能测试利器第17张

Jmeter性能测试利器第18张

Jmeter性能测试利器第19张

Jmeter性能测试利器第20张

Jmeter性能测试利器第21张

Jmeter性能测试利器第22张

Jmeter性能测试利器第23张

Jmeter性能测试利器第24张

crontab -e编辑定时任务的列表

Jmeter性能测试利器第25张

四、数据驱动性能测试

数据驱动:从数据文件中读取测试数据,驱动测试过程的一种测试方法,是一种更高级的参数化。

  • 特点:测试数据与测试代码分离,数据控制过程
  • 优点:减少测试代码量;降低脚本开发和维护的成本;便于用例的修改和维护(不用修改代码)
  • *要求:较强的代码能力;较强的分层架构设计思维;对开发框架有一定的了解

1.数据驱动的使用场景

(1)复杂的业务流程
(2)根据业务场景分流
(3)符合条件的并发场景

Jmeter性能测试利器第26张

JMeter中的数据驱动

  • 控制方式:
    • 参数化(推荐使用数据库)
    • 逻辑控制器(如,if控制器)

JMeter数据驱动实战

  • 场景
    • 登录后男人浏览电子商品
    • 登录后女人浏览衣服商品
idnamesexage
1zhangsan020
2lili023
3wangwu122
4malu123

Jmeter性能测试利器第27张

五、数据库架构设计及性能调优

1.数据库性能测试的目的及范围

  • 目的:发现数据库相关的所有性能瓶颈
  • 范围
    • SQL语句 - 慢查询等
    • 资源使用率
    • 数据库架构的合理性
    • 数据库性能指标

2.数据库的常用架构

  • 一主多从:减少单台服务器的压力,但有可能会存在主从延时的问题,其原理是:
    • master将改变记录到二进制日志(binary log)中
    • slave将master的binary log events拷贝到它的中继日志(relay log)
    • salve重做中继日志中的事件,将改变反映它自己的数据

Jmeter性能测试利器第28张

  • 双机热备

Jmeter性能测试利器第29张

3.数据库分库分表的设计方法

  • 1.拆分原因:
    • 单表或库数据量太大
    • 硬件不能升级或无法升级
  • 2.分库分表方案:
    • 业务拆分:用户、商品、订单
    • 垂直拆分:商品 -> 电子商品、母婴商品、床上商品
    • 水平拆分(一致性哈希算法):同一张表拆成三张一样规则的表
      水平拆分

4.MySQL数据库监控指标

拓展:MariaDB:MySQL支付创建,目标替换现有的MySQL,兼容MySQL是开源的。

  • QPS:(queries per seconds 每秒查询数量 )
    • 获取方法:mysql> show global status like 'Quesion%' ;
    • 计算方法:Queries /seconds
  • TPS(Transaction per seconds)
    • 计算方法:TPS = (Com_commit + Com_rollback) / seconds
    • 获取Com_commit:mysql> show global status like 'Com_commit';
    • 获取Com_rollback:mysql> show global status like 'Com_rollback';
  • 线程连接数
    • 获取最大使用的连接数:mysql> show global status like 'Max_used_connections';
    • 获取线程数:mysql> show global status like "Threads%"
  • 最大连接数
    • 获取最大的连接数:mysql> show variables status like 'max_connections';
  • Query Cache
    • 查询缓存用于缓存select查询结果,当下次收到相同查询请求时,不在执行知己查询处理而直接返回结果;适用于大量查询、很少改变表中数据
    • 开启Query Cache方法:修改my.cnf文件,将query_cache_size设置为具体大小,具体大小是多少取决于查询的实际情况,最好设置为1024的倍数(参考值为32M);增加一行:query_cache_type=0/1/2(1:缓存所有结果;2:指定缓存)
  • Query Cache命中率
    • 获取:mysql> show status like "Qcache%";
    • 计算:Query_cache_hits = (Query_hits / (Qcache_hits + Qcache_inserts)) * 100%;
  • 锁定状态
    • 获取:mysql> show global status like '%lock%';
    • 计算:Table_locks_waited / Table_locks_immediate 值越大代表表锁造成的阻塞越严重
    • Innodb_row_lock_waits innodb行锁,太大可能是间隙锁造成的
  • 主从延时
    • 查询:show salve status;

5.MySQL慢查询工作原理及操作

  • 慢查询:执行速度超过定义的时间的查询;不同的系统定义不同的慢查询
  • 慢查询开启
    • 编辑/etc/my.cnf,在[mysqld]域中添加
      slow_query_log = 1
    • 慢查询日志路径:
      slow_query_log_file=/data/mysql/slow.log
    • 慢查询的时长:
      long_query_time = 1
    • 未使用索引的查询也被记录到慢查询日志中
      log_queries_not_using_indexes = 1
  • 慢查询日志分析
    mysqldumpslow
    # 参数说明:
    #       -s 表示按何种方式排序
    #           c:访问计数
    #           l:锁定时间
    #           r:返回记录
    #           t:查询时间
    #           al:平均锁定时间
    #           ar:平均返回记录数
    #           at:平均查询时间
    #       -t 返回前面多少条的数据
    #       -g 后面写一个正则匹配模式,大小写不敏感
    
    • 返回记录集最多的10个SQL
      mysqldumpslow -s r -t 10 slow.log
    • 返回访问次数最多的10个SQL
      mysqldumpslow -s c -t 10 slow.log
    • 返回按照时间排序的前10条里面包含左连接的SQL
      mysqldumpslow -s t-t 10 -g "left join" slow.log

6.SQL的分析与调优方法

explain(执行计划)

  • 用法:explain select 语句
  • 结果分析:
    • id:select识别符,代表语句的执行顺序,一般在select嵌套查询时会不同;数字越大越先执行;null代表是结果集
    • select_type:
      • simple:不需要union操作或者不包含子查询的简单select查询,有连接查询时,外层的查询为simple且只有一个
      • primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type纪委primary且只有一个
      • union:连接的两个select查询,第一个查询时dervied派生表,除了第一个表外,第二个以后的表select_type都是union
      • dependent union:与union一样,出现在union或union all语句中,但是这个查询要收到外部查询的影响。
      • union result:包含union的结果集,在union和unionall语句中,因为它不需要参与查询,所以id字段为null
      • subquery:除了from字句中包含的子查询外,其他地方出现的子查询都可能是subquery
      • dependent subquery:dependent union类似,表示这个subquery的查询要收到外部查询表查询的影响
      • derived:from字句中出现的子查询,也叫派生表,其他数据库中可能叫做内联视图或嵌套select
    • table
      • 显示的查询表名,如果用别名就显示别名;
      • 为null表示不涉及对数据表的操作;
      • 显示表示为这个是临时表
    • type
      • 依次好到差 system 、const 、eq_ref、ref、fulltext、ref_or_null、unique_subquery、index_subquery、range、 index_merge、index、ALL
      • 除了ALL,其他的type都可以用到索引,扫描全表数据文件
      • 除了index_merge外,其他只能用一个索引,常见于and或or使用了不同的索引
      • system:表中只有一行或是空表,且只能用myisam和memory表
      • 如果是Innodb引擎表,type列在这个情况通常都是ALL或index
      • const:使用唯一索引或主键返回记录一定是1行记录的等值where条件时,通常type是const
      • eq_ref:出现在要连接过这个表的查询计划中,驱动表只返回 一行数据,且这行数据时第二表的主键或者唯一索引
      • ref:返回数据不唯一的等值查找就肯能出现
      • fulltext:全文检索,优先级很高
      • ref_or_null:与ref类似,只增加了null值的比较
      • unique_subquery:用于where中in形式子查询,子查询返回不重复唯一
      • index_subquery:用于in形式子查询使用到了辅助索引或者in常数列表。
      • range:索引范围扫描,常用于>,<,is null,bettwen等
      • index:索引全表扫描,把索引从头到尾扫描一遍
    • possible_keys:查询可能使用到的索引都会在这里列出来
    • key:查询真正使用到的索引,select_type为index_merge时,这里可能出现两个以上的索引,其他的select_type这里只会出现一个
    • key_len:用于处理查询的索引长度;单列索引全算,多列不一定全算
    • ref:若果是常数等值查询,显示const;如果使用了表达式或函数,显示func
    • rows:执行计划中估算的扫描行数,不是精确值
    • Extra:
      • distinct:select中使用了distinct
      • no table used:不带from字句的查询或者From dual查询
      • using filesort:排序时无法使用到索引;常见于order by或group by语句中
      • using index:查询时不需要回表查询,直接通过索引查询的数据
      • using intersect:使用and的各个索引的条件,表示是从处理结果去交集
      • using union:使用了or的各个索引的条件,表示是从处理结果取并集
      • using where:使用了where条件,表示存储引擎返回的记录不是所有的都满足查询条件,需要在server层进行过滤
        Jmeter性能测试利器第31张

7.MySQL索引概念及规范

  • 索引类型

    • 主键索引:特殊的唯一索引,不允许有空值(id列),创建表时确定创建
    • 唯一索引 :索引列的值必须唯一,不允许空值
    • 普通索引 :最基本的索引,没有任何限制
    • 全文索引 :fulltext只适用于MyISAM表的一个索引类型(char、varchar、text)
      match()实现全文索引
    • 组合索引 :多列索引,是得多列上创建索引,最左前缀规则(id,name,age-->id、name、age,id、name,id)
  • 索引创建规范
    可以提高传下效率,但也会降低插入和更新的速度并占用磁盘空间,在插入和更新数据时,要重写索引文件

    • 单张表中索引数量不超过5个
    • 单个索引中的字段数不超过5个
    • 不适用更新频繁的列作为主键
    • 合理创建组合索引(避免冗余)
    • 不在低基数列上建立索引,如性别
    • 不在索引列进行数学运算和函数运算,会是索引失效
    • 不适用%前导的查询,如like "%xxx"无法使用索引
    • 不适用反向查询,如not in、not like
    • 选择越小的数据类型越好占用空间少,处理更快
    • 在经常需要排序(order by)、分组(group by)、和distinct列上用不了索引,索引考虑加where或加limit
    • 在表与表的连接条件上加索引,可以加快连接查询的速度
    • 使用短索引,字段本来短

8.MySQL的存储引擎

  • MyISAM
    • 优点:
      • 读的性能比Innodb高很多
      • 索引与数据分开,使用了压缩,提高了内存使用率
    • 缺点:
      • 不支持事务
      • 写入数据时,直接锁表
  • InnoDB
    • 优点:
      • 支持事务
      • 支持外键
      • 支持行级锁
    • 缺点:
      • 不支持fulltext索引(全文索引)
      • 行级锁并不绝对,当不确定扫描范围时,锁全表
      • 索引与数据时紧密捆绑的,没使用压缩导致体积庞大

10.MySQL实时监控

orzdba 淘宝团队开发的

11.MySQL集群监控工具

天兔LEPUS

下载

简介
Jmeter性能测试利器第32张

12.MySQL性能测试的用例准备

Jmeter性能测试利器第33张

Jmeter性能测试利器第34张

Jmeter性能测试利器第35张

13.JMeter开发MySQL性能测试脚本

14.执行测试

七、多协议接口性能测试
  • 目标

    • 发现应用接口程序的性能瓶颈
    • 发现数据库的性能瓶颈
  • 范围

    • 应用程序各项性能指标
    • 数据库各项性能指标

1.常见接口协议:

  • HTTP协议:超文本传输协议

  • HTTPS协议:安全超文本传输协议

    • 默认端口:443
    • 安全性的SSL加密传输协议(网站证书),可以理解为HTTP协议的安全版
    • 协议栈中的位置
      • HTTPS
      • SSL/TLS
      • TCP/IP
      • 数据链路层
  • FTP协议:文件传输协议

    • 默认端口:21和20
      • 21:用户表示、口令、发送的命令
      • 20:数据连接用于实际传输一个文件(主动模式)
    • HTTP和HTTPS面向网页的,FTP面向文件的
    • FTP使用两个并行TCP连接来进行文件传输
    • FTP使用两个并行TCP连接为控制连接和数据连接
  • TCP/IP协议:中间层协议,网络控制协议/互联网协议

  • UDP协议:用户数据协议

2. JMeter进行FTP协议接口测试

Linux搭建FTP服务器

Jmeter性能测试利器第36张

Jmeter性能测试利器第37张

Jmeter性能测试利器第38张

3.性能测试用例设计及测试报告

  • 性能测试用例设计

    • 被测系统及版本
    • 测试数据
    • 测试场景(包含异常场景)
    • 预期结果
    • 预期性能指标
  • 性能测试测试报告

    • 被测系统
    • 版本号
    • 运行环境、配置
    • 测试场景(并发定义)
    • 预期性能指标
    • 实际结果
    • 测试结论
    • 测试人员
    • 如不通过说明瓶颈
    • 如通过说明最大性能指标
    • 容量规划

免责声明:文章转载自《Jmeter性能测试利器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ssl证书部署问题在Visual Studio 2005中使用WinPcap编写程序的配置方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Zabbix故障处理系列

然后,您还需要重新启动zabbix porxy。我刚重启了zabbix特工。然而,Zabbix网络界面的图形中没有数据。此时,重新启动zabbix代理以解决相应的问题。Zbx在Zabbix监控的网页上也显示为灰色。有时,其中一些可能是绿色的,如下所示:问题2:当Zabbix代理未升级时,无法在Zabbix监控页面上监控数据。原因:ZABBIX4.0版本存在兼...

.NET5 ABP框架(一)

授权-ABP可以以声明的方式检查权限。如果发生异常,ABP将自动记录并向客户机返回适当的结果。默认情况下,ABP使用Log4Net写入日志。当然,我们也可以通过修改配置来使用其他日志框架。除了本示例中显示的ABP的优点之外,ABP还提供了一个健壮的基础架构和应用程序模型。...

java--枚举

前言:Java中的enum也是一种类类型,它与一般类的区别在于1.世界上只有一个实例2.不能有公共构造函数3。您不能继承和继承枚举事例publicenumHttpCode{SUCCESS(200,“操作成功”)。//定义的每个枚举项都等效于通过构造函数HttpCode(int code,Stringmessage)实例化没有枚举项的通用HttpCo...

使用 supervisor 管理进程

Supervisor可以在Linux和Mac OS X上运行。Supervisor功能强大,提供了很多功能,但我们可能只需要使用其中的一小部分。为了方便起见,我们将配置分为两部分:管理程序和应用程序。首先,让我们看看supervisord的配置文件。...

MongoDB用户与角色管理

MongoDB默认不启用访问控制。管理员可以在配置文件授权参数中使用--auth-in restart或security来启用访问控制。(4) MongoDB在每个数据库上提供内置的DatabaseUserRoles和DatabaseAdministrationRoles。MongoDB仅为管理数据库提供所有内置角色。此角色没有用户和角色管理权限。(4.4)...

Selenium模拟操作中按钮点击(click) 失效解决方法

在使用硒模拟操作时,我们经常会遇到一些原始方法无法解决的问题。然而,在网站的登录框中,直接位置按钮的点击元素无效,返回键也无效。分析应该是重点,但不可能尝试很多方法。实验结束后,当焦点位于登录框的用户文本框中时,按Enter键将依次从用户名框、密码框移动到提交按钮。最常见的文本框输入问题是由文本框的占位符引起的。但该方法仍然无法处理它,只能执行Script。...