robotframework自动化测试环境搭建
环境说明
- win10
- python版本:3.8.3rc1
安装清单
安装配置
selenium安装
首先检查pip命令是否安装:
C:\Users\name>pipUsage:pip <command> [options]Commands:install Install packages.download Download packages.uninstall Uninstall packages.freeze Output installed packages in requirements format.list List installed packages.show Show information about installed packages.check Verify installed packages have compatible dependencies.
……
确保pip命令可用,如果提示“pip不是内部或外部命令”,需要将将pip的安装目录(如:C:\Python36\Scripts)添加到环境变量PATH下面。
接下来通过pip命令安装Selenium:
C:\Users\name>pip install selenium
Collecting seleniumDownloading selenium-3.4.3-py2.py3-none-any.whl (931kB)26% |████████ | 245kB 576kB/s eta 0:00:02 27% |█████████ | 256kB 570kB/s eta 0:00:02 28% |██████████ | 266kB 536kB/s eta 0:00:0 29% |███████████ | 276kB 530kB/s eta 0:00:0 30% |████████████ | 286kB 586kB/s eta 0:00:0
……
SeleniumLibrary安装
具体参见官网:https://github.com/robotframework/SeleniumLibrary
根据python版本,这里安装的是SeleniumLibrary 4.3,具体可以根据实际情况安装。
安装命令:
pip install robotframework-seleniumlibrary==4.2.0
robotframework安装配置
直接使用pip命令进行安装
pip install robotframework
ride安装
这里安装了最新的ride,安装参考官网给出的最新方法进行安装
pip install -U https://github.com/robotframework/RIDE/archive/master.zip
参考官网 https://github.com/robotframework/RIDE
AutoitLibrary安装
首先从官网下载autoit-v3-setup.exe根据提示安装即可,然后进行robotframework-autoitlibrary 1.2.5的安装,仍旧使用pip命令操作,如下
pip install robotframework-autoitlibrary
安装过程如下:
C:\Windows\system32>pip install robotframework-autoitlibrary
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting robotframework-autoitlibraryDownloading https://pypi.tuna.tsinghua.edu.cn/packages/c4/4f/7d4d4c6232b7bb4f5c78fee4e46691087adc7b248ffed71cc3dafcc0a507/robotframework-autoitlibrary-1.2.5.tar.gz (696 kB)|████████████████████████████████| 696 kB 930 kB/s
Requirement already satisfied: pywin32 in c:\users\admin\appdata\local\programs\python\python38\lib\site-packages (from robotframework-autoitlibrary) (227)
Requirement already satisfied: pillow in c:\users\admin\appdata\local\programs\python\python38\lib\site-packages (from robotframework-autoitlibrary) (7.1.2)
Using legacy setup.py install for robotframework-autoitlibrary, since package 'wheel' is not installed.
Installing collected packages: robotframework-autoitlibraryRunning setup.py install for robotframework-autoitlibrary ... done
Successfully installed robotframework-autoitlibrary-1.2.5
安装完成之后,可以查看一下本机安装的软件信息,如下
C:\Windows\system32>pip list
Package Version
------------------------------ -----------
numpy 1.255 173)">18.4
Pillow 7.1.2
pip 255 173)">20.1.1
Pygments 2.6.1
Pypubsub 4.0.3
pywin32 227
robotframework 3.2.1
robotframework-autoitlibrary 1.2.5
robotframework-ride 2.0b1.dev1
robotframework-seleniumlibrary 4.2.0
selenium 3.255 173)">141.0
setuptools 46.4.0
six 1.255 173)">14.0
urllib3 1.25.9
wxPython 4.0.7.post2C:\Windows\system32>
安装autoit主要是为了进行文件上传的操作。
Autoit使用
安装完成Autoit之后,这里主要使用的是AutoItWindow Info(x64)、SciTE Script(x64)和Compile Script to .exe(x64)这三个工具。(因为本机是64位的,所有这里使用的都是64位)
首先打开AutoItWindow Info(x64),点击"Finder Tool"拖拽到上传文件选择页面,如图
可以看到AotuIt显示的信息,接下来就是使用SciTE Script(x64)进行编码操作,具体代码如下
$path = "C:\Users\admin\Postman\files\发票模块说明文档.doc"
ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开","","Edit1",$path)
sleep(2000)
ControlClick("打开","","Button1")
保存为au3的格式,然后再次使用Compile Script to .exe转换为exe格式。接下来就是robotframework中使用run关键字操作。
Allure报告集成jenkins
在编写robotframework脚本进行运行,可以集成到jenkins进行运行测试;使用jenkins运行生成比较完整的报告信息。有两种生成报告的方法,一种是使用robotframework自带的报告集成到jenkins查看报告信息,还有一种是使用allure生成的报告界面相对漂亮很多。
Robot Framework Plugin插件
使用Robot Framework Plugin插件来生成robotframework报告,首先需要在jenkins中安装这个查看,然后在项目中配置使用:如图
说明:
Thresholds for build result 这里根据测试用例执行的实际情况设置范围
Allure插件
另外一种是使用allure插件生成报告,首先安装allure插件,然后在项目中修改配置信息。
Allure库安装
pip install allure-robotframework
jenkins插件安装和配置
安装allure插件这里就不在说明,有疑问可以百度;接下来是Global Tool Configuration,如图
然后就是具体的项目配置信息,可以按照下面的操作一步步来进行:
第一步:设置自定义工作空间
这里因为jenkins的安装目录和本机运行的test测试用例目录不是同一个,所以针对项目设置自定义工作项目空间,如图
说明
- C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts是python的安装目录
- %WORKSPACE%默认取的是jenkins的工作路径,这里自定义设置的是项目的工作目录,即上图中设置的E:\Robot_Workspace
- robot --listener allure_robotframework,是RF和allure结合的固定命令,用户生成符合allure格式的日志文件。(网上很多都是pytest框架对应的命令,此处已经不要搞错,否则后面生成不了报告)
- %WORKSPACE%\allure-results,指定的allure格式的日志文件的存储路径
- E:\Robot_Workspace\rcm_beta\是要执行的测试用例的路径
第三步:构建后allure报告
选择"Allure Report",在path路径中设置存放allure相关日志文件的路径,此路径必须是“构建”命令中%WORKSPACE%后面的路径值,这里是allure-results ,如图
引用:https://www.jianshu.com/p/a0b58f02f4b5
这里有几个点必须注意,不然生成的报告显示的数据为空:
如果项目test的工作路径和jenkins的工作路径不一致,则必须在jenkins中自定义工作空间(或者把项目复制到jenkins的工作空间也是可行的~)
想要生成符合allure格式的报告,使用的命令robot --listener allure_robotframework
需要指定allure报告路径,即%WORKSPACE%\allure-results
配置完成之后,点击"立即构建",构建完成可以看到报告如下图所示
安装问题
日志乱码
安装完成后,第一次运行ride时,使用cmd正常显示中文,使用RIDE执行用例时控制台和日志均乱码:
具体解决:Lib\site-packages\robotide\contrib\testrunnertestrunnerplugin.py
将SYSTEM改成OUTPUT
来自 https://github.com/robotframework/RIDE/issues/1747
jenkins运行提示不是内部或外部命令
集成到jenkins执行robotframework时,提示pybot不是内部或外部命令
执行的命令:
call pybot.bat -d E:\outputdir E:\Robot_Workspace\rcm_beta
exit 0
第一步:首先在jenkins系统配置-全局属性中添加pybot命令的环境变量,如图
键:pybot
值:C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts
配置本地安装的python的安装路径。
第二步:需要切换要执行的命令到安装python的路径中,修改如下:
c:
cd C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts
call pybot.bat -d E:\outputdir E:\Robot_Workspace\rcm_beta
exit 0
再次运行就正常了。
最后:下方这份完整的【软件测试】视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】
相关文章:

robotframework自动化测试环境搭建
环境说明 win10 python版本:3.8.3rc1 安装清单 安装配置 selenium安装 首先检查pip命令是否安装: C:\Users\name>pipUsage:pip <command> [options]Commands:install Install packages.download Do…...

尚硅谷《Redis7》(小白篇)
尚硅谷《Redis7 》(小白篇) 02 redis 是什么 官方网站: https://redis.io/ 作者 Git Hub https://github.com/antirez 03 04 05 能做什么 06 去哪下 Download https://redis.io/download/ redis中文文档 https://www.redis.com.cn/docu…...
并非从0开始的c++ day6
并非从0开始的c day6二级指针练习-文件读写位运算位逻辑运算符按位取反 ~位于(AND):&位或(OR): |位异或: ^移位运算符左移<<右移>>多维数组一维数组数组名一维数组名传入到函数参数中数组指…...
PMP考前冲刺2.22 | 2023新征程,一举拿证
承载2023新一年的好运让我们迈向PMP终点一起冲刺!一起拿证!每日5道PMP习题助大家上岸PMP!!!题目1-2:1.在新产品开发过程中,项目经理关注到行业排名第一的公司刚刚发布同类型的产品。相比竞品&am…...
RxJava的订阅过程
要使用Rxjava首先要导入两个包,其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0首先从最基本的Observable的创建到订阅开始分析 Observable.create(new Observable.OnSubscribe<S…...
【2.22】MySQL、Redis、动态规划
认识Redis Redis是一种基于内存的数据库,对数据的读写操作都是在内存中完成的,因此读写速度非常快,常用于缓存,消息队列,分布式锁等场景。 Redis提供了多种数据类型来支持不同的业务场景,比如String(字符串…...

2年手动测试,裸辞后找不到工作怎么办?
我们可以从以下几个方面来具体分析下,想通了,理解透了,才能更好的利用资源提升自己。一、我会什么?先说第一个我会什么?第一反应:我只会功能测试,在之前的4年的中我只做了功能测试。内心存在一种…...

Leetcode6. N字形变换
一、题目描述: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产…...
将Nginx 核心知识点扒了个底朝天(十)
ngx_http_upstream_module的作用是什么? ngx_http_upstream_module用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组。 什么是C10K问题? C10K问题是指无法同时处理大量客户端(10,000)的网络套接字。 Nginx是否支持将请求压…...
GPU显卡环境配置安装
前言 最近公司购买了一张RTX3090的显卡和一台新的服务器,然后对机器的GPU环境进行了安装和配置,然后简单记录一下 环境版本 操作系统:Centos7.8 显卡型号:RTX3090 Python版本:3.7.6 Tensorflow版本:2…...

CIMCAI super unmanned intelligent gate container damage detect
世界港航人工智能领军者企业CIMCAI中集飞瞳打造全球最先进超级智能闸口无人闸口ceaspectusG™视频流动态感知集装箱箱况残损检测箱况残损识别率99%以上,箱信息识别率99.95%以上World port shipping AI leader CIMCAIThe worlds most advanced super intelligent gat…...
web概念概述
软件架构:1. C/S: Client/Server 客户端/服务器端* 在用户本地有一个客户端程序,在远程有一个服务器端程序* 如:QQ,迅雷...* 优点:1. 用户体验好* 缺点:1. 开发、安装,部署,维护 麻烦…...

编译原理笔记(1)绪论
文章目录1.什么是编译2.编译系统的结构3.词法分析概述4.语法分析概述5.语义分析概述6.中间代码生成和后端概述1.什么是编译 编译的定义:将高级语言翻译成汇编语言或机器语言的过程。前者称为源语言,后者称为目标语言。 高级语言源程序的处理过程&#…...
MySQL(八)
服务器参数设置 general datadir/var/lib/mysql 数据文件存放的目录socket/var/lib/mysql/mysql.sock mysql.socket表示server和client在同一台服务器,并且使用localhost进行连接,就会使用socket进行连接pid_file/var/lib/mysql/mysql.pid 存储mysql的p…...

steam搬砖项目,小投入高回报,可放大操作,(内附教学资料)
我必须要说,steam搬砖项目就是全网门槛最低的副业,有手就行! 本人90后底层员工一枚,新入csgo搬砖项目,轻松翻身 什么做抖音、海外问卷、直播卖货,电商等等对比我这个都是小钱。我这个方法是利用了大部分人…...
华为OD机试真题Python实现【最多提取子串数目】真题+解题思路+代码(20222023)
最多提取子串数目 题目 给定由 [a-z] 26 个英文小写字母组成的字符串 A 和 B,其中 A 中可能存在重复字母,B 中不会存在重复字母 现从字符串 A 中按规则挑选一些字母,可以组成字符串 B。 挑选规则如下: 1) 同一个位置的字母只能被挑选一次 2) 被挑选字母的相对先后顺序不…...

day32 多线程(上)
文章目录相关概念codeThreadTest01ThreadTest02 编写一个类,直接继承java.lang.Thread,重写run方法ThreadTest03 实现线程的第二种方法ThreadTest04 采用匿名内部类的方式ThreadTest05 获取线程名字ThreadTest06 sleep方法sleep面试题ThreadTest08 终止线…...
【flink】 各种join类型对比
表定义 动态表(dynamic table):动态表是流的另一种表达方式,动态表作为一个逻辑的抽象概念,使我们更容易理解flink中将streaming发展到table这个层次的设计,本质都是对无边界、持续变更数据的表示形式,所以动态表与流之…...
常用正则表达式
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)(.[0…...

PMP考试有没有什么技巧可以介绍一下么?
一、试题形式 ——中英文对照 即每道题都是一遍英文,一遍翻译的中文,在审题的时候有一些小的技巧需要注意。首先如果你的英文水平足够好,建议直接阅读原文。PMP试题毕竟是美国人出的,语言的组织、思想的表达,肯定更符…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...