【软件测试】如何设计自动化测试脚本

企业中如何设计自动化测试脚本呢?今天我们就来为大家分享一些干货。

一、线性设计

线性脚本设计方式是以脚本的方式体现测试用例,是一种非结构化的编码方式,多数采用录制+回放的方式,测试工程师通过录制+回访的访问对被测系统进行自动化测试,录制的脚本会产生某些冗余的代码内容或函数及脚本。

线性设计的特点:

测试用例已脚本方式编写

脚本开发成本较低

对测试人员编码的无经验要求

不需要提前对测试框架进行设计与开发

测试过程中的数据是写死在脚本中的会出现冗余

脚本的维护比较困难,成本非常高

测试人员各自为主,缺少复用

二、结构化设计

结构化设计是以函数/方法的形式进行编写,主要是通过循环来控制测试流程及测试脚本,如使用for循环、while循环、if...else...等循环或分支语句实现对函数的不同条件的判断及场景的调用。

结构化设计的特点:

测试用例在脚本中通过函数的方式体现

测试脚本编码能力较线性脚本有更高的要求

需要测试人员具备良好的代码设计能力与编码能力

测试数据依然在脚本中写死

相对较为稳定,所需要的维护成本较线性脚本相对较低

三、共享化设计

共享化设计是将脚本中公共的函数/内容在整个测试过程中进行共享,方便其它脚本的调用,减少了代码的冗余。让被测系统实现组件化的互相调用。

共享化设计的特点:

测试用例在脚本中编写,同时需要便于其它脚本的调用

开发成本较低,减少了大量的冗余脚本内容

对测试人员的代码设计能力有较高要求

由于需要组件化进行设计,对测试人员的编码能力要求较高

脚本的维护和成本较低

四、数据驱动设计

数据驱动设计是将测试数据与测试脚本进行分离,以外部数据文件的方式进行测试数据管理,减少耦合,在测试过程中需要对测试数据进行修改时,仅需修改外部数据文件中的内容即可,测试脚本中的代码内容不做改动,从而减少频繁修改代码产生的问题。

数据驱动设计的特点:

测试用例的脚本与测试数据分离,需要测试数据时进行I/O读取

参数化数据读取与写入相对来说,对测试人员的编码能力进一步提高

测试数据独立进行保存与维护

测试脚本的维护成本较低

一般推荐在需要测试正反向测试时使用

测试数据能够复用,进一步减少了代码的冗余情况

五、关键字驱动设计

关键字驱动是将所有需要执行的业务操作中的公共的操作独立进行封装,所有业务调用公共的操作方式,而对于程序的控制也以函数的方式进行驱动,即公共操作,程序控制,测试数据都通过外部数据文件进行管理和读写,关键字驱动的基础的数据驱动。

关键字驱动设计的特点:

关键字驱动对于测试人员的编码能力要求非常高,需要大量的编码经验积累

关键字驱动中测试用例是以外部数据文件的方式进行组织的

对于整体测试框架的设计能力要求较高

能够极大的降低其它测试人员的编码能力要求

整体框架的维护成本非常低

支持多个项目复用,同一套框架可以不断复用在其它的项目中

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

相关推荐
一个天蝎座 白勺 程序猿10 小时前
Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
redis·爬虫·python·selenium·scrapy·云原生·k8s
代码的乐趣13 小时前
支持selenium的chrome driver更新到136.0.7103.94
chrome·python·selenium
程序员小远1 天前
UI自动化测试方案详解
自动化测试·软件测试·selenium·测试工具·ui·职场和发展·测试用例
逸雨清风2 天前
Chrome更新到136以后selenium等自动化浏览器失效
selenium·自动化
小白学大数据2 天前
Python+Selenium爬虫:豆瓣登录反反爬策略解析
分布式·爬虫·python·selenium
小冯的编程学习之路3 天前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman
Ten peaches3 天前
Selenium-Java版(操作元素)
java·selenium·测试工具·html
Looooking3 天前
Python 之 selenium 打开浏览器指定端口进行接续操作
python·selenium
程序员杰哥4 天前
自动化测试基础知识详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
水银嘻嘻6 天前
web 自动化之 selenium 下拉&鼠标键盘&文件上传
selenium·自动化