针对大部分的B2B系统,通过后台接口,例如http等方式交互。传统的黑盒测试难以测试出系统的细节问题。在了解交互接口的情况下,可以针对交互进行自动化测试,把控系统的运行状况。
本文介绍了自动化测试系统的一个案例,针对支付平台,自动化测试系统作为一个商户的角色,进行交互接口测试,并且从返回结果,以及业务系统的DB两个方面进行验证。
1. 自动化测试系统的意义
在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。主要意义如下:
避免重复工作,提高测试效率
保证每次测试地一致性和可重复性
优化资源配置
更好的利用无人值守时间
促进测试人员能力提升
2. 测试人员需要掌握的技能
一般测试行业分两个方向,测试开发以及系统测试。测试开发类似于开发自动化测试平台,而系统测试的主要任务是开发自动化测试的脚本,在本案例中,主要是需要模拟请求,并且验证结果。需要如下:
基本的脚本语言,例如python,shell,本案例使用的是python
熟悉被测系统的接口协议,以及接口内容
熟悉被测系统的数据库,以及需要验证的数据对应的数据表以及字段
3. 自动化测试框架以及流程
自动化测试的性能指标要求较低,毕竟自动化测试不是无时无刻进行,所以后台的管理站点以及数据库偏轻量级,本案例采用java开发管理后台,mysql作为数据库存储用例,python作为自动化测试的脚本,从mysql数据库中读取用例并执行,并且将用例的执行结果存储在mysql,管理者通过管理后台查看。
对应的流程刚才已经说明,如下图:
4. 系统结构 结构如下图。自动化测试在下图的左半部分。 自动化测试管理后台”一共有五大核心功能模块,分为是:
系统管理
共分为:用户管理、权限类型管理、预测类型管理、脚本方法列表、日志类型配置等五个子模块;
该模块主要用于配置系统的用户、权限和预测类型、脚本方法、日志的类型的基本配置。
平台管理
共分为:平台管理列表、接口配置列表、请求模块列表、校验模块列表等四个子模块;
该模块主要用于项目平台的配置、对应平台的下单接口名称配置、接口的请求地址详情配置和通用校验脚本的配置。
用例管理
共分为:用例管理平台一个子模块;
该模块主要用于配置所有的测试用例、以及用例的功能描述、执行的模块步骤以及对应模块的预测结果。
监控管理
共分为:执行详情列表、用例平台统计、用例接口统计等三个子模块;
该模块主要用于查看具体用例的执行详情以及根据平台、用例的用例执行统计数据。
日志管理
共分为:系统日志等一个子模块;
该模块主要用于查看后台的详细操作日志。
5. 自动化测试的用例构成 6. 自动化测试的用例对应的预期结果
上文已经提到,该案例主要采用两种方式进行自动化测试
针对被测系统的接口
主要是在系统构造了请求后,针对返回的信息,进行判定,是否和预期结果一致,主要通过是否包含特定字段方式,通过正则表达式等均可实现。
针对被测系统的数据库
通过系统数据库的检测,判断系统是否针对请求正常的运转,通过写SQL语句进行判定。
不同的项目需求不一样,所有的技术和方案都会有不同。本文主要是通过一个案例,来打开思路,说明自动化测试系统的价值,以及在B2B平台应用的可行性。
|