RobotFramework实战篇-PC端web自动化demo及持续集成

简介: Robotframework该框架的学习成本比较低,很多功能都是现成的,而且脚本易于维护,而且同时支持web端,移动端以及接口自动化,用例套件管理以及用例执行和报告查看,日志记录等功能都比较完善,而且可扩展性强。

 自己学习自动化的话,除了要选好一款框架之外,还要选好一个用来练习的项目。这里小编推荐新手入门可以考虑一下Robotframework这个框架,原因:该框架的学习成本比较低,很多功能都是现成的,而且脚本易于维护,而且同时支持web端,移动端以及接口自动化,用例套件管理以及用例执行和报告查看,日志记录等功能都比较完善,而且可扩展性强。对于企业来说的话 ,选用这款工具,对将来招聘的时候的成本没这么大,如果每个人都选择自己手写脚本封装框架去实现自动化的话,以后人员离职,要找个人来维护现有脚本,有一定的难度,每个人的编码风格和能力参差不齐,选用脚本的方式的话,对测试人员的能力要求比较高。

   练习的项目的话,这里我从网上找了一个开源的项目,部署在自己的机器上,项目可以在gitee上搜索linjiashop,上面有写怎么部署 ,我也写了一篇文章简单介绍怎么部署:你们要的测试练习网站来了


   工具+项目选好之后,接下来以项目的登录功能为例,演示一下如何使用Robotframework工具实现登录模块的自动化

1、RobotFramework环境搭建 ,建议使用Python3.7的版本,不要使用3.8及以上的版本,以免RIDE出现兼容性问题

2、安装做web端的自动化所需依赖的第三方插件:

pip install -U robotframework-selenium2library

新建项目

菜单File->New Project,输入项目名称,选择脚本存放路径,Type选择Directory,表示以文件夹的方式去存储项目数据,Format任选一个都可以,表示用某个格式的文件去存储用例。


微信图片_20220113215501.png


新建测试套件

在项目下新建测试套件(Suite),命名为login_testsuite


新建测试用例

测试套件建好之后,接下来就可以在测试套件下开始新建测试用例了。

下面以我从网上找的一个开源网站部署到服务器为例,演示一下如何实现打开浏览器实现自动登录的这样一个过程。 练习网站部署教程

微信图片_20220113215504.png



Robotframework是一个关键字驱动,做web端UI自动化的话,底层还是用的selenium框架,因此,需要先用pip命令安装robotframework-selenium2library 插件,安装之后,在测试套件中可以引入Selenium2Library的Library:


微信图片_20220113215506.png这里先了解一下web自动化的几个常用的关键字:

  • Open Browser 打开浏览器
  • Maximize Browser Window 最大化浏览器
  • Close All Browsers 关闭浏览器
  • Input Text 文本框输入
  • Click Element 点击元素
  • Sleep 设置等待时长

通过以上几个关键字,就可以完成 自动启动浏览器,输入账号密码登录。

用例编写如下:


*** Test Cases ***
login1
    Open Browser    http://8.129.162.225:9528/#/login    Chrome
    Maximize Browser Window
    Input Text    name=username    admin
    Sleep    1
    Input Text    name=password    admin123456
    Sleep    1
    Click Element    xpath=//*[@id="app"]/div/form/button/span
    Sleep    3
    Close All Browsers

用RIDE查看用例的话,显示如下:


微信图片_20220113215509.png


用例的话,本身就是存储在一个文本文件中,因此,也可以用pycharm或者其他编辑器去进行编辑。


执行用例



微信图片_20220113215511.png查看报告


微信图片_20220113215513.png


到这就完了?那肯定还没完,做自动化测试,除了要考虑场景和用例的设计,还要考虑用例的管理,用例的执行,报告的生成。自动化测试的脚本一般都是集成到jenkins持续集成平台上面,结合测试环境的自动部署,触发自动执行用例。那接下来,让我们一起看一下如何将RF的脚本集成到jenkins平台中去运行。


RF脚本集成Jenkins运行

准备工作

1、搭建jenkins持续集成环境,并安装好推荐的插件

2、注册一个gitee帐号/公司内部搭建的git仓库帐号,将自己的测试脚本上传到git进行管理(主要是考虑到团队协作,可能多人修改脚本)。

3、准备一台linux服务器/虚拟机,在上面安装谷歌浏览器,并下载好对应版本的浏览器驱动文件,并将驱动文件所在目录加入到环境变量中去。

  • 以阿里云上面Centos 8.2的镜像为例,演示一下如何安装谷歌浏览器来运行UI自动化的脚本
cd /etc/yum.repos.d
vim google-chrome.repo  ,内容如下:
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
保存文件后,输入下面的命令在线安装
yum -y install google-chrome-stable --nogpgcheck

安装完成后,输入google-chrome --version即可查看谷歌浏览器的版本:


微信图片_20220113215515.png


下载浏览器对应版本的chromedriver驱动,解压后存放在服务器某个目录下,并将驱动文件所在目录配置环境环境,并注意驱动文件是否具有可执行权限。

4、安装jenkins上的Robot Framework插件,用来展示报告


微信图片_20220113215518.pngjenkins中job的关键配置:


微信图片_20220113215521.png


微信图片_20220113215523.png


微信图片_20220113215525.png


运行后的效果:


微信图片_20220113215528.png


如果在线查看报告的时候出现以下错误:


微信图片_20220113215530.png


可以用下面的方式进行解决:

打开jenkins的脚本命令行,然后执行下面的命令后,就可以正常查看报告

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ;")

到这里,RF脚本持续集成差不多就配置完了,可以根据自己的需要加上邮件提醒以及定时构建,环境更新后自动触发等操作,对jenkins相关操作不熟悉的,可以关注小编的其他文章喔。

相关文章
|
4天前
|
敏捷开发 jenkins Devops
探索软件测试的新篇章:自动化与持续集成的融合之道
【9月更文挑战第31天】 在软件开发的海洋中,测试是确保航船稳健前行的灯塔。本文将引领读者驶入软件测试的新纪元,探索自动化测试和持续集成如何携手共创高效、可靠的开发流程。我们将从基础概念出发,逐步深入到实际操作层面,揭示这一现代软件开发模式的核心价值和实现路径。你将看到,通过代码示例和实践案例,如何将理论转化为提升软件质量的具体行动。
|
11天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible实战应用
【9月更文挑战第24天】在现代IT基础设施的快速迭代与扩展中,自动化运维成为提升效率、保障稳定性的关键。本文将深入探讨Ansible这一流行的自动化工具,通过实际案例分析其如何简化日常运维任务,优化工作流程,并提高系统的可靠性和安全性。我们将从Ansible的基础概念入手,逐步深入到高级应用技巧,旨在为读者提供一套完整的Ansible应用解决方案。
|
1天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
94 64
|
5天前
|
监控 Devops 测试技术
DevOps实践:持续集成与部署的自动化之路
【9月更文挑战第30天】在软件工程的世界中,DevOps已成为提升开发效率、确保软件质量和加快交付速度的关键策略。本文将深入探讨如何通过自动化工具和流程实现持续集成(CI)与持续部署(CD),从而优化软件开发周期。我们将从基础概念出发,逐步深入到实际操作,最终展示如何构建一个高效的自动化流水线,以支持快速迭代和高质量发布。
22 7
|
6天前
|
JSON Rust 安全
30天拿下Rust之实战Web Server
30天拿下Rust之实战Web Server
26 7
|
14天前
|
Devops jenkins Java
DevOps实践:持续集成和部署的自动化之旅
【9月更文挑战第20天】在软件开发的世界里,速度和质量是至关重要的。本文将带领读者踏上一场自动化之旅,深入探索DevOps文化中的两大支柱——持续集成(CI)和持续部署(CD)。我们将通过一个实际的案例,展示如何利用现代工具和技术实现代码从编写到部署的无缝转换,确保软件交付的高效性和可靠性。准备好让你的开发流程变得更加流畅和高效了吗?让我们开始吧!
|
5天前
|
Devops jenkins 测试技术
DevOps实践:持续集成与自动化测试的融合之道
【9月更文挑战第29天】在软件开发的快节奏竞赛中,DevOps如同一位智慧的舵手,引领着船只驶向效率与质量的彼岸。本文将揭开DevOps的神秘面纱,探索其核心理念如何通过持续集成(CI)和自动化测试的实践,实现软件开发流程的优化与加速。我们将一同见证代码从构思到部署的旅程,以及这一过程中的关键技术和工具如何协同工作,确保软件质量和交付速度的双重提升。
|
7天前
|
JavaScript 前端开发 数据安全/隐私保护
组件库实战 | 教你如何设计Web世界中的表单验证
该文章通过实战演练,教授了如何在Web应用中设计和实现表单验证,包括使用Vue.js处理表单输入的验证逻辑、展示错误信息以及通过插槽和组件间通信来增强表单的功能性和用户体验。
组件库实战 | 教你如何设计Web世界中的表单验证
|
10天前
|
缓存 中间件 网络架构
Python Web开发实战:高效利用路由与中间件提升应用性能
在Python Web开发中,路由和中间件是构建高效、可扩展应用的核心组件。路由通过装饰器如`@app.route()`将HTTP请求映射到处理函数;中间件则在请求处理流程中插入自定义逻辑,如日志记录和验证。合理设计路由和中间件能显著提升应用性能和可维护性。本文以Flask为例,详细介绍如何优化路由、避免冲突、使用蓝图管理大型应用,并通过中间件实现缓存、请求验证及异常处理等功能,帮助你构建快速且健壮的Web应用。
11 1
|
19天前
|
Ubuntu jenkins 测试技术
软件测试中的自动化与持续集成实践
【9月更文挑战第15天】在软件开发的快节奏世界中,自动化测试和持续集成(CI)已成为确保质量和效率的关键策略。本文旨在揭示如何通过实施自动化测试框架和CI流程来优化开发周期,减少人为错误,并加快产品上市时间。我们将探讨一些实用的工具和技术,以及它们如何帮助团队实现更流畅、更可靠的软件发布。
下一篇
无影云桌面