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

相关文章
|
8月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
1042 0
|
8月前
|
人工智能 自然语言处理 API
快速集成GPT-4o:下一代多模态AI实战指南
快速集成GPT-4o:下一代多模态AI实战指南
629 101
|
11月前
|
缓存 监控 安全
通义大模型与现有企业系统集成实战《CRM案例分析与安全最佳实践》
本文档详细介绍了基于通义大模型的CRM系统集成架构设计与优化实践。涵盖混合部署架构演进(新增向量缓存、双通道同步)、性能基准测试对比、客户意图分析模块、商机预测系统等核心功能实现。同时,深入探讨了安全防护体系、三级缓存架构、请求批处理优化及故障处理机制,并展示了实时客户画像生成和动态提示词工程。通过实施,显著提升客服响应速度(425%)、商机识别准确率(37%)及客户满意度(15%)。最后,规划了技术演进路线图,从单点集成迈向自主优化阶段,推动业务效率与价值持续增长。
583 8
|
11月前
|
存储 文字识别 自然语言处理
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
本文深入探讨了通义大模型在文档自动化处理中的应用,重点解决传统OCR识别精度低、效率瓶颈等问题。通过多模态编码与跨模态融合技术,通义大模型实现了高精度的文本检测与版面分析。文章详细介绍了OCR集成流程、批量处理优化策略及实战案例,展示了动态批处理和分布式架构带来的性能提升。实验结果表明,优化后系统处理速度可达210页/分钟,准确率达96.8%,单文档延迟降至0.3秒,为文档处理领域提供了高效解决方案。
1067 1
|
10月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1250 0
|
8月前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
2648 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
8月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
1415 12
|
8月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
705 6
|
8月前
|
安全 Linux PHP
Web渗透-命令执行漏洞-及常见靶场检测实战
命令执行漏洞(RCE)指应用程序调用系统命令时,用户可控制输入参数,导致恶意命令被拼接执行,从而危害系统安全。常见于PHP的system、exec等函数。攻击者可通过命令连接符在目标系统上执行任意命令,造成数据泄露或服务瘫痪。漏洞成因包括代码层过滤不严、第三方组件缺陷等。可通过参数过滤、最小权限运行等方式防御。本文还介绍了绕过方式、靶场测试及复现过程。
1808 0
|
10月前
|
Web App开发 开发框架 .NET
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
Pytest 与 Playwright 集成可提升自动化测试效率,支持参数化测试、多浏览器并行执行及统一报告生成。通过数据驱动、Fixture 管理和并行优化,显著增强测试覆盖率与执行速度,适用于复杂 Web 应用测试场景。