明明我只是一名测试人员,为啥我还要会数据库?
我是来做自动化测试的,还要懂数据库?
什么?性能测试也要会数据库,那要会什么?
作为一名苦逼的测试人员,和数据库的关系有剪不断的关系。不管你是功能测试、自动化测试、还是性能测试,永远摆脱不了数据库,最扎心的是,你要是以为不同的测试岗,要会的数据库的知识点都一样,那你就太天真了,就像升级打怪一样,只会越来越难。
那我们来瞧一瞧如何进阶打怪,辅助攻略走起来,让我更好的了解下不同阶段需要哪些特殊技能。这里我只说明要会的技能,具体的还要靠小伙伴们实战学习。
功能测试
问:我是一名刚入门测试的小白,数据库要会什么呢?
答:通常功能测试的话,在页面中对数据的增加或修改等操作,都应该去数据库去校验数据的正确性。最简单的方法就是找数据库对应表中最新的一条,但是只会这样是远远不够的,所以你要增删改查、多表联查等sql语句都会写。最常见的就是查询操作。并且增删改查、group by、order by、分页等操作都要会。
常用:
SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件GROUP BY 字段名 HAVING COUNT(字段名)>1。
自动化测试
自动化测试中测试用例是必备的,在设计测试用例的时候,我们需要了解执行用例的时候需要做哪些数据准备,因为自动化测试跑批量脚本时,会产生很多垃圾数据,通常会为了保证测试数据不会对测试环境产生影响,会执行完用例之后会删除测试数据。不同的自动化测试脚本会有不同的数据库处理规则,所以在编写测试脚本的时候,不仅要会基本的sql脚本之外,你还要考虑:
1、如何进行数据库脚本之间的连接及相关信息的配置。
举例:通过脚本配置数据库信息等
2、准备你执行的sql语句(例如你登录的账号是从如何库里获取的、如何删除测试数据等)。我一般会在配置文件中写我要配置的sql语句。
3、如何把查询出来的数据‘取’到本地文档中。一般将获取到的数据导入到excel表格中。
4、要知道有些字段和数据库的限制是否一致,是否和需求一致等(断言校验)。
5、学会数据库备份,以防在测试过程中产生问题而进行数据恢复。并且测试需要回归,也方便后面的测试。
常用备份数据sql语句如下:
备份整个数据库:
mysqldump -u root -h host -p dbname > backdb.sql
备份数据库中的某个表:
mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql
备份多个数据库:
mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql
性能测试
众所周知,性能测试主要是通过工具来模拟多种正常、峰值、以及一些异常的情况,来对系统的各种性能指标来进行测试。做性能测试的前提就是准备大量的测试数据,那你不可能一条条去create数据,而且我们还要会对数据库性能做测试。就说几种比较常见的操作。
1、压测数据准备:编写sql脚本(最可取:前提是要对表的业务结构及业务逻辑等非常熟悉,虽然很容易有踩坑却是最实用的办法)、业务操作实现多数据(不可取)、复用生产数据(生产数据比较少、可能存在脏数据的情况等不具备压测的意义)
举例:通过jmeter添加测试数据。首先导入数据库的jar包,配置JDBC Connection Configuration信息,创建JDBC Request,对数据库进行插入操作。执行后,通过sql命令[select count(*) from user]查看当前插入的条数。
2、数据库性能压测:数据库方面的性能压测真的很难,是需要不断积累的。压测中要考虑数据库的读写能力,并发查询,缓存影响,长短连接方式(如ODBC JDBC),容错能力,扩展能力(增删节点机器),容量压测……等等,还要会利用一些压测工具对数据库进行压测。都快赶得上一个DBA了。
一开始我也以为做一名测试,只要简单的数据操作就行了,然而,不同的测试岗需要进阶的技能也就越难,所以测试也很厉害的,加油!
资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走…
这些资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….