基准测试

Go中的单元测试和基准测试

纵然是瞬间 提交于 2019-11-28 03:59:28
单元测试:测试程序在各种数据下的准确性 基准测试(压力测试):测试程序的速度及弹性 testing包被专门用来进行自动化测试,日志和错误报告。并且还包含一些基准测试函数的功能 测试文件必须满足 *_test.go这种格式*代表源文件的名字(测试代码和业务代码分开了) _test程序不会被普通的Go编译器编译。只有gotest会编译所有的程序(普通和测试) 测试文件(测试源代码)中必须导入import testiong 测试函数必须以TestZzz为格式(Zzz是函数名,如TestAdd(t *testing.T)) T是传给测试函数的结构类型,用来管理测试状态,支持格式化测试日志,t.Log,t.Error,t.ErrorF 以下函数用来通知测试失败: func (t *T)Fail()//标记为失败,并继续执行 func (t *T) FailNow()//标记为失败并终止此文件的执行,继续下一个文件 func (t *T) Log(args ...interface{})//args 被用默认的格式格式化并打印到错误日志。 func (t *T) Fatal(args ...interface{})//先执行第三个,在执行第二个(上面两个的综合) go test来编译测试程序,并执行程序中所有的TestZzz函数,所有的测试都通过会打印出PASS

解MySQL基准测试和sysbench工具

China☆狼群 提交于 2019-11-27 12:15:35
前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法。 文章有疏漏之处,欢迎批评指正。 目录 一、基准测试简介    1、什么是基准测试    2、基准测试的作用    3、基准测试的指标    4、基准测试的分类 二、sysbench    1、sysbench简介    2、sysbench安装    3、sysbench语法    4、sysbench使用举例    5、测试结果 三、建议 一、基准测试简介 1、什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。 2、基准测试的作用 对于多数Web应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存

sysbench测试

别来无恙 提交于 2019-11-27 02:18:36
什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。 基准测试的作用 对于多数Web应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。 而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。 基准测试的指标 常见的数据库指标包括: TPS/QPS:衡量吞吐量。 响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。 并发量:同时处理的查询请求的数量。 基准测试的分类 对MySQL的基准测试