如何进行数据库测试?Jmeter进行mysql测试案例分享篇

数据库、Linux、测试理论、软件工程知识、计算机基础、网络基础、服务器基础、程序语言基础等,都是软件测试从业者必须具备的基础知识。大部分我们都接触比较多,但对于数据库,从实际的了解来看,很多从业者对数据库是有强需的对,有些甚至工作中都没接触过数据库,导致第一次接触时,完全没概念。下面我们来详细了解下数据库如何进行测试?

数据库测试的重要性

由于对数据存储,分析,安全,性能和稳定性的要求越来越高,数据库也从以前一个默默无闻的后台仓库,逐渐成为了数据库系统。

既然数据库开发在软件系统中的比重逐步提高,那么由于数据库开发过程中存在的问题也随之而来。一个软件系统的功能,性能,安全性往往和数据库开发有直接的关系,但是实际工作中,我们从来没有真正将数据库作为一个独立的系统进行测试,而是通过对代码的测试工作间接对数据库进行一定的测,数据库方面的测试仍然处于空白。

为了进一步的提高软件质量和开发效率,我们必须关注数据库测试,并且尽早的参与数据库开发。

数据库测试的分类

从测试关注点的角度来说,数据库测试可以分为以下几大类

a)功能测试

b)性能测试

c)安全测试

d) ……(健壮性测试,容错性测试和恢复能力等等)

其中,数据库的功能测试主要涉及到增、删、改、查等方面基本操作,数据有效性和准确性等等,对数据的输入输出进行检查;性能测试主要包括,插入,查询的并发,满负荷下的持续运行时间,数据库响应时间,CPU占用率,SQL语句优化等,安全测试最主要考虑的是SQL注入;另外健壮性测试,容错性测试和恢复能力也是我们测试的要点,主要考察数据库持续运行的时间。

功能测试

对数据库功能的测试我们可以依赖于工具进行。

DBunit一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操作进行白盒的单元测试,对输入输出进行校验。

QTP大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。

DataFactory一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。

数据库性能

虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能。

性能优化分4部分:

1. 物理存储方面

2. 逻辑设计方面

3. 数据的参数调整

4. SQL语句优化

安全测试

软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端。自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单却很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。

案例分享:Jmeter进行简单mysql数据库测试

1、环境准备:

mysql: mysql-5.7.17.msi

jdbc驱动

Jmeter: 3.2

2、打开Jmeter,创建测试计划,点击浏览,添加jdbc驱动

3、添加线程组,并在下面添加一下“JDBC Connection Configuration”(配置元件中),并填写连接配置

注释:Variable Name Bound to Pool 该值在整个测试计划中应该是唯一的,以便JDBC采样器区别不同的连接配置 ,测试人员可以在测试计划中添加多个JDBC配置,但是它们必须有不同的名字。另外多个JDBC请求可以引用同一个连接池。

Database URL: 数据库URL格式: jdbc:[数据库类型]://[ip地址]:[端口号]:/[实例名] , 如本次用的:jdbc:mysql://localhost:3306/sys

username和password分别为数据库的用户名和密码

其它输入域保持默认值

4、添加JDBC Request 采样器,并设置相应sql 语句, 注意下面的变量名需要jdbc配置元件的名称相同。

5、添加断言

线程组--->添加--->断言---->响应断言

6、添加一些监听器来查看sql执行情况

7、最后运行,查看监听器结果报告

总结:

数据库的健壮性,容错性和恢复能力也是我们测试的要点,我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的基本要求。

下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
在这里插入图片描述在这里插入图片描述
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你

关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦

《全栈性能测试修炼宝典 JMeter实战》是软件测试领域里程碑式的重要著作,由多位培养出经理级乃至总监级性能高手的大师联手创作,本书深入讲解了性能测试实践操作过程中诸多难题的调优心法,实现从理论到实操的升华。列出自学所需的性能技能目录树,助力测试小白迅速成长为技术大牛。从脚本到运维、公式到指标的运用掌握应有尽有,手把手教你性能测试技巧。此书在手,助你走出迷茫。   内容推荐   “基础”:欲练神功,不必自宫。打我基础,从此坦途。   “工具”:欲善其事,先利其器。神剑在手,天下任走。   “实践”:练武无功,到老皆空。有武有功,江湖轻松。   “提升”:江湖之大,无奇不有。融会贯通,相忘江湖   首部分:基础   帮助初学者或想踏入这个行业的工程师迅速了解除工具以外的性能测试的真实本质。去伪求真,使读者能够把握性能测试要点和难点及职业规划有进一步的认识。不管你是内行还是外行,读完后必有所获。   第二部分:工具   可当JMeter工具书来进行查阅,是市面上目前为止比较全面的JMeter讲解工具。学会热门的负载工具JMeter,对各种常见协议的性能测试工作(包括自动化测试测试脚本不用愁。   第三部分:实践   可学到Linux、Windows平台的性能监控、诊断分析;炼就火眼金睛,见微知著的技能;性能问题快速定位。   适合中高级性能测试工程师阅读,掌握性能分析方法,学会如何调优,了解当前的性能调优手法。   可跟书中实例操作,掌握性能测试整个过程,包括需求分析、测试计划、脚本开发、测试数据制作、测试执行、测试结果诊断分析、性能调优整个过程,真正能够开始进行性能测试工作。   第四部分:提升   性能测试自动化(Jenkins+Ant+JMeter),能够很方便的实现性能测试回归。提高产率,更少的人力,更低的功耗,更高的生产率;老板怎么爱你都不算多。   另外,前端的性能表现会直接影响到客户体验,前端性能测试也将成为新的性能点,读者可以更深层的了解此方面的知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值