网站正在建设中代码,鲜花网站建设的目标,手机搜索引擎排行榜,网站制作流程分为哪三步今晚在某个测试群#xff0c;看到有人问了一个问题#xff1a;把测试数据放配置文件读取和放文件通过函数调用读取有什么区别#xff1f;
当时我下意识的这么回答#xff1a;数据量越大#xff0c;配置文件越臃肿#xff0c;放在专门的数据文件#xff08;比如excel看到有人问了一个问题把测试数据放配置文件读取和放文件通过函数调用读取有什么区别
当时我下意识的这么回答数据量越大配置文件越臃肿放在专门的数据文件比如excelcsv方便针对性的维护。
乍看没毛病但回头和人讨论这个问题的时候就认真思考了一下这个问题下面是我的一些思考和讨论的一些结果仅供参考。。。 自动化测试过程中现在大多都默认测试脚本与测试数据分离的设计这样做的好处是降低维护成本迁移成本以及提高效率。
因此测试数据放在哪里如何管理不能一概而论。个人觉得应该从以下几方面来考虑
1、业务场景
①、比如在UI自动化测试中需要测试某个电商网站的各个业务模块但前提是要用户登录。这个用来执行登录的测试账号数据往往是固定的那么专门将 一组username和password放在一个测试数据文件或者测试数据库中这样就显得太笨重耗时费力。将其写入测试脚本或者写入配置文件直接引用效率会更高。
②、同样测试电商网站账号体系分为普通账号会员账号会员还分很多等级有时候为了测试会员中心不同的账号展示的信息是否不同就需要使用不同的 等级的账号登录这种场景下可以将测试数据放在测试文件里比如excel、csv通过参数化的方式来循环读取执行后续操作。
③、在API自动化测试中比如针对restful风格的接口它的域名相对来说都是固定的只是不同接口的path不同那么也可以将域名写入配置文件 测试过程中只需要将实例化的域名和path进行拼接即可这样也省却了在测试数据文件中维护的成本一定程度上提升了测试效率。 2、数据类型
测试数据也分不同类型大概分为以下几种类型
base-data即基础数据比如电商网站的商品信息、SKU比如物流公司的仓储管理等这类数据往往基数比较大可以视为持久层储存在DB中
test-data测试数据根据业务场景不同数据无论量级还是变更频次也不同基于测试脚本与数据分离的概念可放在专门的测试文件中比如excel、csv
ephemeral-data临时数据即使用一次的数据这种类型的数据可以用临时文件存储比如dat、csv等格式然后进行参数化读取或者直接写入脚本中 3、数据量级
①、还是电商网站的某个场景需要先执行登录登录的账号比如是专门配置的一个测试账号相对固定那么将测试账号写入测试脚本也无可厚非。 不过我本人不喜欢将测试数据直接写入脚本这种情况我会写入配置文件然后实例化调用这种情况就需要根据个人习惯来设计没有固定的套路
②、数据量级在几十——几百上千之间这种时候可以写入excel文件进行存储管理但是excel的局限在于其本身目前最大支持65500行的数据存储 而且只支持单事务如果需要多线程读取就会变成瓶颈。
③、csv文件结构简单、通用可以和excel进行转换可以减少存储文件size且具备简单的安全性可以在一定程度上替代excel成为数据存储文件。 我本人目前在大多数场景下也是使用csv类型的文件进行测试数据存储管理
④、当测试数据超过一定量级比如性能测试中如果要执行并发测试或者稳定性测试那么所需测试数据量级就很大这时使用excel或者csv就会变得很不方便。 无论是从维护的成本还是便捷性考虑都应该选择利用DB或其他高效的管理方式来存储和管理测试数据 4、使用频次
测试数据的重用频次不同也需要选择不同的存储方式比如
①、once只使用一次的测试数据那么只需要写入临时文件用完作废或者删除即可
②、often即经常使用的测试数据应根据数据量级使用场景数据类型选择合适的存储管理方式
③、alway可以理解为base-data或者持久数据这种类型的数据因为其本身更新频次很低或者数据量级较大一般存储在DB中是比较好的一种管理方案。 综上所述测试数据的存储和管理没有固定的套路需要结合业务场景使用频次数据类型和数据量级来综合考虑设计合理高效的方案才是正确的方式
内容仅供参考如有更好的建议希望评论提出谢谢。。。
B站2023年最详细的python自动化测试框架全栈测试开发技术入门到精通教程