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相关操作不熟悉的,可以关注小编的其他文章喔。

相关文章
|
22天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
75 19
Selenium IDE:Web自动化测试的得力助手
|
24天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
144 17
Selenium:强大的 Web 自动化测试工具
|
15天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
17天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
43 2
|
2月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
2月前
|
运维 监控 应用服务中间件
自动化运维的利器:Ansible实战应用
【10月更文挑战第41天】在现代IT运维领域,自动化已成为提高效率、减少错误的关键。Ansible作为一种简单而强大的自动化工具,正被越来越多的企业采纳。本文将通过实际案例,展示如何使用Ansible简化日常运维任务,包括配置管理和批量部署等,旨在为读者提供一种清晰、易懂的自动化解决方案。
32 1
|
2月前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
71 4
|
2月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
58 1
|
2月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。