| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 基于Robot Framework实现网络自动化测试 -> 正文阅读 |
|
[系统运维]基于Robot Framework实现网络自动化测试 |
1 概述1.1 引言自动化测试是软件程序走向持续集成和持续交付的必要方法。目前测试领域里常见的自动化测试方法,一般都是基于Web UI、App UI以及单元测试等,而应用于网络基础设施的网络自动化测试方法,是少之又少。各大网络设备厂商,如华为、华三、迪普等,都有自己的一套网络自动化测试体系,其中很多测试方法,即使是公布出来,普通用户也无法使用,因为这些体系,基本都是基于非公开的自研软件实现。本人从大厂出来后,经过长时间的调研和实践,找到一种不需要自主开发测试框架,而只是基于开源Robot Framework工具的SSHLibrary库,就可以实现网络自动化测试的方法,希望能给正在寻求网络自动化测试方法的团队一些启示。 1.2 Robot Framework简介Robot Framework(官网:?https://robotframework.org/?)是一款Python编写的、根据Apache License 2.0发布的开源的功能自动化测试框架,由Nokia Siemens Networks开发并提供支持,于2008年开源。 Robot Framework是开放且可扩展的,并且可以与几乎任何其他工具集成以创建强大而灵活的自动化解决方案(比如结合Selenium做Web自动化测试、结合Appium做APP自动化测试、结合Jenkins + Testlink + Bugzilla做持续集成)。开源也意味着Robot Framework可以免费使用,而无需支付许可费用。 Robot Framework使用易于理解的关键字,语法简单。它的功能可以通过使用Python或Java实现的库进行扩展。该框架有一个丰富的生态系统,由作为独立项目开发的库和工具组成。 Robot Framework项目托管在GitHub上(?https://github.com/robotframework/robotframework?),可以在其中找到更多的文档,源代码和问题跟踪器。 Robot Framework是独立于操作系统和应用程序的。该核心框架使用Python实现,并且还可以在Jython(JVM)和IronPython(.NET)上运行。 1.3 SSHLibrary库介绍SSHLibrary是一个Robot Framework测试库,用于测试SSH和SFTP。在Github上可以找到其开源信息(?https://github.com/robotframework/SSHLibrary?)。 SSHLibrary支持Python2.7和Python3.4+,同时也支持Jython2.7。 SSHLibrary的主要应用场景有:
官网的SSHLibrary指导手册是全英文的,如果阅读困难,可以参考本人对SSHLibrary的理解性翻译,详细内容可以查看我的上一篇博客。 2 搭建自动化测试基础环境2.1 Python安装与配置基础安装: 自动化测试环境建议使用Windows系统搭建,在Python官方网站上下载Python 3.7.9的安装包。 鼠标右键点击“我的电脑”-->左键点击“属性”-->“高级系统设置”-->“高级”-->“环境变量”,在系统变量里面找到“Path”,鼠标左键双击进行编辑,添加Python的安装目录,主要涉及以下几个目录: $PATH\Python37\ $PATH\Python37\Lib\Site-packages $PATH\Python37\Scripts 环境变量编辑完成后,鼠标左键连续点击确定,保存编辑内容。 打开Windows的命令行,输入? 执行? 虚拟环境的安装:测试环境建议使用Python的虚拟环境,方便以后因为其他项目而更新Python。具体安装过程如下: pip install wheel pip install virtualenv pip install virtualenvwrapper-win 在D盘创建一个目录VirtualEnvs。 按照上面的提示打开环境变量的设置,在系统变量里面添加一个新的变量,变量名为“WORKON_HOME”,变量值为“D:\VirtualEnvs”。这样所有的虚拟环境都会保存在这个目录下。 虚拟环境的创建与配置:执行? 退出虚拟环境用deactivate命令,再次进入使用“workon + 虚拟环境名”进入,比如workon py37_robot。单独执行workon也可以查看当前系统的虚拟环境名称列表。 2.2 Robot Framework的安装与启动基础安装:执行以下操作,安装Robot Framework框架和用于网络自动化测试的组件库: pip install robotframework pip install robotframework-sshlibrary pip install robotframework-ride 经过验证python 3.7.9可以安装并运行Robot Framework框架的版本如下所示: 如果Robot Framework无法安装和运行,可以按照上图所示安装相应版本的框架和组件库。 命令行启动Robot Framework:在Python虚拟环境下,首先输入“D:”,切换命令行目录为D盘。 然后执行? 然后执行? 最后执行? 创建快捷方式:在桌面上,鼠标右键点击“新建”-->“快捷方式”: 在“目标”一栏填入? 在“起始位置”一栏填入? 3 网络自动化测试过程3.1 创建测试计划启动Robot Framework后,点击“File-->New Project”,编辑测试项目,类型选择“Directory”,Format选择“ROBOT”,如下所示: 创建测试计划,选中所创建的测试项目名称,鼠标右键点击“New Suite”,Type和Format使用默认值即可,如下所示: 导入SSHLibrary组件库,选中所创建的测试计划名称,在右侧的“Edit”标签下,点击右侧的“Add Import”下的“Library”按键,如下所示的位置: 在弹出的窗口中“Name”中,输入“SSHLibrary”,需要注意的是“字母大小写必须如图中所示”,然后点击确定,即可导入SSHLibrary组件库。 3.2 创建测试用例选中所创建的测试计划名称,鼠标右键点击“New Test Case”,创建测试用例,名称可以根据所测试的内容任意指定,如下所示: 测试用例创建完成后,会在右侧的“Edit”标签下,显示一个带有如同Excel表格的空白界面,如下图所示: 其中的表格部分,是我们需要填入的内容,详细信息可以参考我的SSHLibrary理解性翻译?https://gitee.com/rustfree/fl-2-zh/blob/master/工具指导/202105-RobotFramework-SSHLibrary/SSHLibrary理解.md 3.3 编辑测试用例根据所需要测试的内容编辑测试用例,如下图所示: 测试用例的1、2步骤,向目标服务器发起SSH连接,SSHNAME为用户名,SSHPASSWORD为密码。 3至5步骤,为所执行的具体测试步骤。第4步骤的delay时间可以设置为5秒,便于命令执行后读取全部的返回信息。第5步骤是判断版本信息中是否包含“20200”关键字。 第6步骤是关闭SSH连接。 测试用例中的“Tags”标签信息很重要,它用来给测试用例定义一个关键字标签。建议将这个标签定义为设备款型、执行轮次、特定功能等,以便于在执行测试的时候,根据标签来区分需要执行哪些测试用例。这样的好处是我们只需要维护一套测试用例库,不需要根据不同的设备或者不同的测试轮次创建多个测试用例库。这在执行测试用例的过程中,可以通过测试用例的标签,选择本次需要执行哪些用例,详细信息请见“3.4 执行测试用例”。支持给测试用例配置多个标签,如下图所示: 3.4 执行测试用例工具栏中? ?三个图标,依次是“执行测试”、“以Debug方式执行测试”和“停止测试”。在执行测试过程中,会在右侧的“Run”标签下打印所执行的日志信息,其中可以明确显示每一步执行的过程。 在执行的过程中,每个测试用例的图标颜色,可以判断执行状态。
在“Only run tests with these tags”输入栏中,可以在其中填写一个测试用例的标签名称。比如填入“XXX_function_test”,这样在执行自动化测试的时候,Robot Framework只会执行带有“XXX_function_test”标签的测试用例,其他的测试用例会自动跳过,而不执行。 3.5 查看测试报告测试结果可以在“Run”标签下查看到,在输出的日志信息中可以查看到输出三个缓存文件。“Run”标签下的文本信息,都可以直接被复制粘贴。 Output: C:\Users\test\AppData\Local\Temp\RIDEgfbvhiee.d\output.xml Log: C:\Users\test\AppData\Local\Temp\RIDEgfbvhiee.d\log.html Report: C:\Users\test\AppData\Local\Temp\RIDEgfbvhiee.d\report.html 打开浏览器,在地址栏中输入上述“Report”的存储路径,可以查看到当前测试所执行的结果和状态。 3.6 排查与定位测试报告中的蓝色字体,都是页面链接,比如可以点击“All Tests”链接,以可以查看具体的执行步骤,如下图所示: 在Message中可以显示执行错误的功能信息,再点击左侧 “Name”标签中的测试用例链接,可以查看到执行失败的测试用例,具体到哪一步出错,如下图所示: 如图中所示,测试过程中在第一步发起SSH连接的时候就出错,错误信息显示SSH连接失败。此时需要检查测试机和被测设备之前的网络通路。 在执行完成之后,参考出错用例的下一个用例,进行配置的修改。在测试用例的规划上,建议采用一条配置和一条执行的方式,如下图所示。 ? 我之前一个人,到处找学习资料,吃尽了苦头,还遇到不少坑,所以我把我整理的学习资料都归类整理好。环境对于一个人的成长很重要,我们一起加油,互相鼓励,从此不再孤单,所以小编决定,不能再低调了,毕竟实力不允许啊!如果有小伙伴想提升自己,未雨绸缪,为自己的未来提前规划,关注我,2021最新的软件测试电子版书籍、视频、还可以找我一起交流技术。更多软件测试资源分享微信公众号:【程序员阿沐】软件测试技术交流群:810119819 逆水行舟,不进则退!共勉!软件测试与你同行!点赞是最大的支持! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 21:54:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |