RobotFramework+Selenium如何提高脚本稳定性
wait until keyword succeeds
就是如果执行不成功,则多次尝试点击,但这个如果失败,就直接执行失败了
2 一些场景尤其需要注意判断,像查询
如查询,因为查询之后一定会需要一段时间去加载等待,而且这个等待时间可能是不固定的,如果你不是采用固定等待的方法,那么就需要去考虑我如何判断查询已经成功返回
如果查询返回的是一个table,,那么可以通过判断table的行数的变化,或者table中一些属性的变化
尽量去比较下,当查询前,和查询后到底有什么区别,如果找到区别,就可以通过wait语句去等待这个变化的出现
在RF中,可以用比较粗暴的方法,用一段FOR结构,循环判断,如果出现了退出的条件,则退出循环,然后固定等待sleep 1
这样的结构,最多可能就等待5s,10s,而且可控,又不是把等待完全交给语句
FOR ${i} IN RANGE 1 10
判断是否成功的元素,如等待或者获取
exit for loop 退出的条件
sleep 1
3 最稳妥的判断
如果点击出现一个对话框,但执行的时候,可能不出现,可能出现
如果不应该出现的时候出现了,可能就会导致脚本直接失败
如果要最稳妥的处理,那么可以通过 Run Keyword And Ignore Error
来判断,这个语句可以返回执行的结果是PASS还是FAIL
那么可以先 ${result} Run Keyword And Ignore Error 等待控件 如等待对话框出现
后面就根据这个result,如果出现,那么点击,如果不出现不点击
Run Keyword And Ignore Error 不影响脚本的执行结果,不会把结果变成失败
4 RF中的IF
RF中的IF结构非常不好写,随意尽量不要添加复杂的判断
官网的例子
5 数据异常
其实出现异常,还有一种可能是数据
如原来已有数据了,可能你添加就会报重复,可能有的提示就不会出现
这时候要注意数据,当然最好是通过数据库直接来复制或者检查,在执行前进行数据整理,在执行后数据清理
有一些数据可能从UI中是无法删除,那么可能就需要直接从库中删除
但所有处理都会花费太多的时间和成本
如果比较简单,可能就执行前人工看下
6 无法避免的异常
实际执行中即使你加了再多的判断,还是可能会出现一些无法想到的意外
如遇到过,执行的时候,直接返回接口异常
所以自动化的前提,还是系统本身是稳定的,如果本身系统就不够强壮,你可能遇到的异常就越多
7 每次执行,遇到异常都要分析
可能刚调试好的脚本,你执行一次没有问题,那多执行几次,如果出现了异常,就要去分析异常出现的可能
只要出现过一次异常,那么下一次就有可能会再次出现
实际总,运行,判断查询,虽然已经加了判断,但有一次出现了不正常
后来修改了判断,加强了判断,也许下次就不会再出现
所以所谓的稳定就是在一次次的运行中,分析,修改,加强
8 判断脚本的稳定
最简单的方法,就是不断重复运行
如果保证网络正常,浏览器正常
可以制定一个指标,如跑10,或者20,都没有异常,则认为脚本是可以的
毕竟没有可视化的所谓稳定,还是需要通过直观的数据去判断
=========================================================
这只是在用RF+Selenium做几个脚本时的思考
毕竟有时候,我们看一些课程都是百度查询,那个都太简单了,基本不会遇到什么异常
但实际中会遇到各种可能性
RobotFramework+Selenium如何提高脚本稳定性的更多相关文章
- Selenium执行测试脚本稳定性的一些经验分享交流
Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...
- 连载三:RobotFramework+Selenium+Jenkins分布式构建
目标:Jenkins安装在服务器上,而使用Jenkins调用本机的脚本并在本机执行. 步骤: (1)需要有RobotFrameWork+Selenium的运行环境: python2.7,Robotfr ...
- selenium基础(脚本模块化)
selenium基础(脚本模块化)
- Selenium执行JavaScript脚本
JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在We ...
- 使用Python的selenium库制作脚本,支持后台运行
本文介绍如何使用Python的selenium库制作脚本.概念: Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome.Firefox.Safari等主流界面 ...
- Selenium 脚本稳定性问题
运行一个星期前升至更久前的脚本,,,出现如下错误提示 elementNotVisibleException was unhandled by user code. 经过询问大侠,说我的脚本不够健全,也 ...
- 树莓派Raspberry中成功安装RobotFramework+Selenium
[原创链接]:http://www.cnblogs.com/atsats/p/6666848.html 一般RobotFramework都是安装在Windows/Linux的PC机上,这里将简单介绍在 ...
- robotframework+selenium搭配chrome浏览器,web测试案例(搭建篇)
这两天发布版本 做的事情有点多,都没有时间努力学习了,先给自己个差评,今天折腾了一天, 把robotframework 和 selenium 还有appnium 都研究了一下 ,大概有个谱,先说说we ...
- robotframework - selenium 分层思路
前言: 对于每一条用例来说,调用“百度搜索”关键字,输入搜索内容,输入预期结果即可.不同关心用例是如何执行的.如果百度输入框的定位发生了变化,只用去修改“百度搜索”关键字即可,不用对每一条用例做任何修 ...
随机推荐
- MongoDB学习笔记三 - MongooseAPI操作数据
在上一篇我们讲了如何通过Mongoose想数据库动态添加数据, 接下来我们一起来看一下如何通过Mongoose来对数据库进行增删改查等一系列操作 Model 对象的方法 remove(cinditio ...
- SprngCloud微服务框架搭建(一)
参照来源 :https://blog.csdn.net/forezp/article/details/70148833 1.简介 目前来说,SpringCloud是比较完整的微服务解决方案框架.不像其 ...
- 解决移动端click事件300ms延迟的问题
方法1.部分浏览器的<meta>标签加上width=device-width就能解决. 方法2.引入fastclick.js库 <!DOCTYPE html> <html ...
- 2021年哪个低代码平台更值得关注?T媒体盘点国内主流低代码厂商
2020年圣诞前夜,国内知名创投科技媒体T媒体旗下的T研究发布了2020中国低代码平台指数测评报告.报告除了对国内低代码行业现状进行总结外,还对主流低代码厂商的市场渗透和曝光进行测评. 报告认为,低代 ...
- noip模拟45
A. 打表 首先注意这道题数组下标从 \(0\) 开始 可以找规律发现是 \(\displaystyle\frac{\sum |a_i-a _ {ans}|}{2^k}\) 那么严谨证明一下: 由于两 ...
- Winform EF CodeFist方式连接数据库
直接生成ado.net 实体数据模型挺方便的,但只有一步步的手写代码才能更好的理解EF,在学习asp.net core过程中手写代码已经明白了怎么回事,但实现过程有些麻烦不知道如何记录,但Winfor ...
- element-ui 弹出组件的遮罩层在弹出层dialog模态框的上面
造成的原因: 因为dialog的组件外层div设置了 position:absolute: 属性所以导致遮罩层会在最上面. 解决方法: 在属性内加上这段代码 :append-to-body=&quo ...
- JAVA安全基础之代理模式(二)
JAVA安全基础之代理模式(二) 上篇讲到静态代理模式,这时候我们发现,一个代理类只能为一个类服务,如果需要代理的类很多,那么就需要编写大量的代理类,比较繁琐.所以就有了动态代理 动态代理 动态代理的 ...
- Git 初识和使用
目录 目录 目录 概念 工作区/暂存区/版本库 master 版本号 常见命令 环境搭建 Linux 下 Git 和 GitHub 环境的搭建 Git 本地操作 本地仓库的创建和使用 查看信息 查看状 ...
- systemctl --now参数
1.我们安装一个httpd服务来测试一下 --now参数 yum install httpd 2.查看一下当前服务状态 可以看到服务没有启动 而且服务没有自启 [root@master1 ~]# s ...