自动化“擅长”做的事
工控主机测试的难点,刚好是自动化很“擅长”做的事,大量重复的工作交给自动化测试去做,测试人员把更多的精力用于深挖测试思路和拓展测试方法。同时,开发人员也可以通过自动化测试完成转测试前的验证,大大提高了转测试产品的质量。
自动化测试采用什么框架更好
自动化测试常用的框架有pytest、Unittest、Robotframework这几种。
Unittest是Python中相对比较流行的自动化测试框架,早期主要用作单元测试,随着自动化更新,也经常应用到UI自动化测试和接口自动化测试中,用来管理和维护测试用例脚本。
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,还可进行分布式测试执行。简单易上手,但规模大一些维护性较差。
pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中,基本上Unittest能做的,pytest都能做,而且在分级执行和失败重试上支持得更好,所以采用pytest框架更合理。
自动化测试从哪些方面开始
界面部分可以采用selenium方式,通过页面一步步点击完成界面测试,当然这部分在所有自动化测试中的比例尽量降低。如页面改动频繁会导致稳定性差,同时执行效率也不太高,导致后期维护成本很高。
界面配置部分尽量采用接口测试,通过接口requests或者产品提供的接口实现功能配置和数据获取,这种方法执行效率高、稳定性强,不会因为频发的变化导致后续维护成本暴增。
被测试机部分通过Windows的Winrm,Linux采用paramiko,或者通过Socket等手段,完成被测机器的注册表、策略组、命令行等操作。
结合界面配置、执行、结果回馈的方式,可以完成端到端的自动化测试,端到端是完整的实现方式,但是这部分实现比例还需要根据项目综合考虑,尽量挑选主流的重要场景实现。以这种方式实现,会导致执行周期较长,对于版本周期较短的项目并不适用。
定位部分可以采用logging的方式,增加打印输出,以方便测试人员对失败case的问题定位。
脚本执行可以通过Jenkins调用,通过版本上传SVN/Git触发任务,并发测试多台被测设备,提高执行效率,完成后,Allure报告通过邮件形式发送给测试人员。
要验证大量操作系统,在很短的周期内无论是对人力还是环境都是巨大的挑战,因此工控主机安全很适合自动化测试。一旦自动化脚本形成规模,将自动化环境管理执行起来,可以做到随时测试,测试人员就可以从容应对版本测试了。当然,自动化也不是万能的,产品质量还要依赖于测试人员不断的学习和思考。自动化测试只是将测试人员从繁琐的工作中解放出来,去挖掘更有深度的问题,再将新的思路形成自动化脚本,形成良性循环,从而不断地提升产品质量,更好地服务于客户,保障客户的工控安全。
渠道合作咨询 张先生 18201311186
稿件合作 微信:shushu12121
原文始发于微信公众号(威努特工控安全):浅析工控主机安全软件自动化测试