如何进行数据库测试?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自动化测试超硬核资源啦

猜你喜欢

转载自blog.csdn.net/m0_53918927/article/details/113061347