引言
很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发
举个例子来帮助理解:比如你要测试一个查询接口,在没有初始化测试数据的情况下,你入参是:id=断言是:assertname=‘测试’,这个断言是你预先知道接口会返回什么。调用接口时候,接口返回结果是name=‘测试’,断言成功,因为你知道数据库有一条id=1的数据。哪天这条id=1的数据被人删除,但是你维护的接口测试框架还在跑,并没有更新测试数据,结果断言失败,你上去debug,最后发现是测试数据的问题,这个过程是费时又费劲的,如果做了测试数据初始化的功能,完全是可以避免的。因为入参和出参都是固定的,是按自己需要初始化好的,不用担心数据变化引发断言失败,那么只关心接口程序代码的问题了。
无法测试加密接口公司项目中,大部分接口是不供外部调用,会使用用户认证、签名、加密等手段,提供接口的安全性。而一般的测试工具无法做到模拟和生成这些加密算法。
扩展能力不足工具始终是工具,有一定的局限性,无法生成自定义测试报告,无法定制化发送邮件,持续集成和定时任务。
对业务的支持程度工具对业务支持程序相对比较低,无法根据不同业务定制化开发,而自动化测试框架可以做到这点,对业务支持比较灵活。
框架设计思路
大致处理流程:
接口自动化测试框架处理过程:
首先编写一份测试数据初始化的脚本,维护一批测试数据到数据库,并且每次初始化前,清空原来的数据,这样保证数据是最新和唯一的(避免重复)。调用被测系统的接口,传入参数,这个请求参数是字典,并且数据与数据库数据(数据是初始化时插入)中一致。系统接口会根据入参,向测试数据库查询。查询结果组装成一定格式(dict、jso的数据,返回给测试框架。测试框架断言接口返回的数据,并生成测试结果(测试报告)。
框架结构
框架结构介绍:
common/:报告、日志等公共模块存放文件夹config/:文件路径、配置信息存放db_init/:测试数据初始化处理程序logs/:生成日志文件pies/:饼存放report/:测试报告存放testcase/:用于编写测试用例run_maipy执行测试集的主程序
主程序运行文件run_maipy:
运行程序
运行结果:
测试日志:测试报告:
有错误不要害怕,看看报错信息,再修改一下,运行后:
在测试之前,要准备测试环境,如果是正式环境的接口,需要独立创建测试数据库,本套仅作为项目测试环境使用。在数据库初始化时,连接测试环境的数据库,将自己需要的测试数据初始化进去,每次程序执行的时候,都初始化一遍,这样的作用防止数据与正式数据冲突,并且防止测试数据重复和累积在数据库中。
附录
文章为作者独立观点,不代表天创网配资观点
Richard2023-10-28
你是没弄懂,股票大涨有什么财富效应,还刺激消费。只有一种可能,就是公司效益好,才能有财富效应。如果只是人为拉高股票,那有什么用,最后就是成了赌博,反而降低了大部分人的财富。看到说发动一次大牛市,然后大家有钱了就有钱消费了,每次我就想笑。