测试自动化有助于提高开发速度,同时减少成本和工作量。在本文中,将分享关于做自动化测试的必备准则条件做参考,以帮助保持测试自动化活动在正确的轨道上,以及测试执行、设计和维护大型企业应用程序的关键技巧。
什么是自动化测试?
概念:把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试节省人力、时间或硬件资源,提高测试效率。
特点优势
自动化测试分类
功能自动化测试、性能自动化测试、 接口自动化
自动化测试类型:
单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit、TestNG,Python的Pyitest,常见的手段是code review等
接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有Eolink、Jmeter、Postman等
UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等
测试自动化的几个准则:
减少除工具研发部门外,其他所有测试部门的人力成本。这个是测试自动化追求的终极目标之一
提高测试质量,不仅仅包括测试执行的质量,还包括测试的统计质量,数据回溯质量,等等等等。这些质量的提高可以帮助测试团队修正他们的测试方法,而不是每天将精力铺在无止境的数据收集和分析中
和时间赛跑,某一项工作自动化后的时间,要么比人手做时间短,要么可以在非工作的16个小时中进行。通过让电脑OT的方法来解放工程师或者项目经理
自动化的三大入手点:
自动化的三大入手点其实和三大准则是一样的。看哪个需求更加迫切:
成本:自动化并不一定围绕测试执行,还可以包括测试的准备,log的提取,数据分析等等。将所有的与测试有关的工作逐一列出,然后找到重复的,可以被代码化的部分,评估现有工作成本和自动化成本,寻找到收益最大的工作块并顺序将之代码化
质量:和成本差不多,只是在评估的时候需要评估的是该工作块现有的质量状况和需求质量间的差异,寻找到差异最多的那个模块,并将所有质量差的模块逐一进行自动化
时间:和以上两点一样,都需要寻找到与测试有关的所有步骤和工作块,将其中关键路径上,动作最慢,耗时最大的部分进行自动化
并不是将测试用例代码化了,就可以称之为自动化测试了。这是现在很多公司宣称自己做AT的一个噱头。AT的代码有很多的要求,总结三点,供大家参考:
- 覆盖面足够够广,个位数case的自动化没必要
Case的复用:软件每天都在变,case要天天跟着软件变,这样的case是完全不合格的
测试的规模要够大:要么时间长(case多或者是压力测试),要么测试产品多。这样才能体现出来自动化测试的优势
其中最关键的一点在于有针对性的选用适合的自动化测试工具,而不是最好的工具;
每个自动化测试项目都有其自身的特定需求。正确的工具可以显著减少测试时间并提高测试团队的效率。错误的工具会引入不必要的复杂性。
选择支持所有所需设备、浏览器、操作系统版本、移动平台、所需的测试自动化级别(UI、API、数据库测试)、测试类型(功能、负载、性能、本地化)和识别技术(本机、图像、文本)的工具。使用单一的工具,交付自动化的学习曲线将显著减少,相同的脚本将被不同的平台重用。
之外,我们选择合适的工具对下面列表进行检查:
普遍要求:
● 技术团队是否具备所需的技能?框架的灵活性是否会赋予团队扩展的能力?
● 你的测试团队是否有使用该工具的经验?
● 该工具是否有强大的社区、帮助资源、用户手册和详细的文档?
● 该工具的供应商对遇到的新技术或问题的反应如何?
● 它是否提供了详细的自动化测试报告?
● 它是否与项目中使用的CI工具、问题管理工具、测试管理工具和通信工具集成?
特定要求:
● 该工具是否允许执行分布式测试?
● 测试的执行需多长时间?
● 它是否支持智能等待(内置或易于集成)?
● 它如何帮助简化测试修改?
● 它是否提供了详细的自动化测试报告?
● 它是否支持DDT方法(比如通过与Cucumber集成)?
API自动化自动生成使用场景:
一般IT系统的开发过程中,涉及到直接的数据库增删查改等操作的API数量超过60%,项目的规模越庞大,此类API的数量也越多。并且大部分企业内部的数据应用场景为快速查询和操作数据库的信息,比如面对一些如客服、数据监控、财务展示等简单场景需要快速开发一套管理应用,可以通过数据库直接生成相关的操作API,搭配前端页面即可使用。
API 快速生成平台能够直接从各种常见关系型数据库、NoSQL数据库、大数据库中间件中生成统一格式的HTTP Restful API。API生成好之后无需测试、部署,可以直接用于实际项目中。常用于以下场景中:
快速生成应用后端,不需开发后端代码:前端可以直接使用数据库生成的API来开发Web、App界面,不需要额外开发后端代码。节省70%以上开发、测试、部署工作量。
打破企业内部系统信息孤岛,快速在系统间共享数据:企业内部各系统直接缺乏互相提供数据的接口,无法跨系统调取数据。现在可以直接将各系统的数据库变成可操作的 API,用于不同系统之间的对接。
作为统一数据平台,支撑数据层性能和安全维护:所有的系统(端)均可通过该平台调用统一的 API,而不需要关注数据库的类型和代码实现。由API自动生成平台提供统一的数据层接口以及维护工作。可以将应用架构进一步拆分,保障底层数据存储的性能和安全。
API自动生成产品特性:
支持关系型、非关系型、大数据数据库
Mysql、Oracle、MariaDB、 SQL Server、PostgreSQL、MongoDB、Redis、Impala 等常见关系型、非关系型、大数据数据库中间件。对于新的的数据库类型可以动态扩充。
支持通过UI界面创建 API
系统会自动识别数据库的结构,可以通过页面操作来生成 API。无需编写代码和脚本即可一键自动生成API。
支持通过 SQL / 专用脚本 创建API
可以通过 SQL语句或者非关系型数据库的专用脚本来创建API。适合构建复杂的数据操作场景。
API 支持设置筛选条件、分页等选项
系统会自动识别API的请求参数对返回数据进行筛选,并且支持自动或手动分页。
生成规范的 API 文档以及调用代码
系统会自动生成规范的 API 文档以及提供相应的调用代码。代码可以直接用于后端开发中。
支持集群部署,拥有优异的访问性能
API 快速生成平台支持多节点部署,可以在访问节点前配置负载均衡应对大规模请求。
支持不同集群配置不同的连接信息
针对跨地区机房、数据读写分离等复杂情况,支持为不同的集群设置不同的数据库连接信息,拥有更高的部署灵活性。
自带请求校验、防SQL注入、HTTPS
系统会自动识别API的请求参数,并且对请求参数进行合法性判断,以及防止SQL注入。
工具如何选可以参照这三点进行考虑:
想满足以上要求,请在线了解Eolink工具的使用;
从今天开始使用:www.eolinker.com
任何人都可以使用,不需要编码能力
功能测试时的cases即刻可以变成自动化用例
像使用Fiddler一样,查看数据的返回情况
Eolinker 的产品有清晰的设计理念,通过文档驱动以及测试驱动能够和目前业务结合,并且改善现有的研发管理流程。Eolinker 产品方案目前在业内各知名企业中有丰富的成功案例,并且产品在功能的丰富度、深度、适用范围、使用体验等方面有明显优势,是一个能够一步到位的产品方案,能够适应长期的研发管理需求,能够满足后续业务扩展的情况。如果现在选型的产品无法满足后续团队发展的需求,以后要再改换方案的成本会很高,建议一步到位来考虑。
在售后服务方面,Eolinker有独立的客户支持团队,有产品培训、客服能够帮助团队上手产品,并且能够针对需求改进点进行快速响应,无需再进行二次开发和担心后期维护的问题。