一、安装相关软件

JDK、maven、pip、robotframework以及所需要的扩展库,Python,IntelliJ IDEA,Mysql,pyftpdlib(FTP server )

二、自动化框架搭建

准备工作:shell脚本的学习http://www.runoob.com/linux/linux-shell.html

自动化测试框架的搭建主要包括三个部分:环境的部署、测试数据的准备、自动化用例的编写

1、规范存放目录和ftp

定义变量,将文件夹名和变量关联,并建立相应的文件夹,方便统一后面有条理的读取存放。(env.sh)

建立以下几个目录:

/data/webapps

/data/appdatas

/data/applogs

2、部署环境

环境部署方面的代码主要在/run.sh和/deploy.sh里面,主要包括预处理、打包、解压、更改bizer、searcher、indexer的配置。

(1)预处理:

将前一次打的包放到/data/webapps/bak目录下进行备份;

停掉当前目录下的所有服务;

杀掉当前机器正在进行的相关进程,防止影响到本次自动化结果;

删除当前目录下上一次服务的包。

(2)打包:

通过mv clean package -Pdist完成本次打包;

(3)解压:

清楚该业务是否有自己的indexer、searcher、bizer,以及针对某些集群,在该集群下可能包含小业务的searcher。

(4)更改配置

更改bizer配置:

(a)更改JVM参数,如最大堆、最小堆、新生代的大小。

JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。最小堆的大小可以设置与最大堆相同,以避免每次垃圾回收完成后JVM重新分配内存。合理的调整JVM的参数,可以适当的调整JAVA程序的工作效率。

(b)更改bizer中的Arts数据库为自动化专用库。

(c)bizer通过pigeon找可用的searcher,修改当前bizer注入的pigeon节点名和其所需要调用到的searcher服务的pigeon节点名。这里通常要注意 一个服务可能需要调用多个searcher,记得调用到的searcher节点名要对应上,此外还可以修改超时时间。

更改searcher配置:

(a)更改JVM参数,如最大堆、最小堆、新生代的大小。

(b)更改searcher中的Arts数据库为自动化专用库。

(c)针对集群或者如suggest下面包含多个小业务,如果小业务有自己的searher,更改小业务当前所注入pigeon节点名

更改indexer配置:

(a)更改JVM参数,如最大堆、最小堆、新生代的大小。

(b)更改indexer中的Arts数据库为自动化专用库。

3、建索引

此处的代码主要在/index.sh 里面

(1)设置JVM相关参数生成GC日志

(2)获取schema文件和csv文件,利用java语句建立索引,将建好的索引放到对应searcher的文件目录下,起服务时会被加载。

三、安装好自动化测试的诸多软件后,接着即可拉取代码,尝试跑自动化。

1.首先是利用:

git@code.dianpingoa.com:arts-repo/search-it-automation.git

git学习:git相关操作

2.在跑代码之前:

(1)切换为jenkins用户,新建文件夹:/data/appdatas, /data/webapps, /data/applogs,并且确保这三个文件夹所属的用户为同一个用户。

在此过程中,学习ssh的用法。

(2)在mac上的data/目录下新建上述是几个文件夹。定义变量,将文件夹名和变量关联,并建立相应的文件夹,方便统一后面有条理的读取存放。

3.拉取具体项目代码:

网址为:http://code.dianpingoa.com/public/projects?utf8=%E2%9C%93&search=arts

此处需要注意的是,项目代码要与自动化测试的代码在同一路径下。

4.执行测试用例

有两种方式:

(1)进入~/Desktop/search-it-automation

执行./run.sh arts-red tuangourec beta search

(2)首先将要用到的服务search和bizer服务启动。

接着进入测试集所在的目录,利用pybot命令执行相应的测试用例。

四、自动化测试用例的编写

在此之前要熟悉Robot Framework语法

(1)首先要熟悉Robot Framework自动化测试框架,以及它所支持的文件格式。

(2)抓请求。通过APP或者PC端发请求到相应的beta机器,登录bata机器到/data/webapps/{BIZNAME}_bizer/logs/query.log

中抓请求。

tailf query.log | grep "3507"

(3)通过Url查看请求结果。

拼请求:curl "$ip:$port/search/$app?query=${queryStr}"

ip/port是提供服务的机器ip地址

$app即用户查询的业务名称,

${queryStr}是查询的字符串。

示例: curl "192.168.0.1:6123/search/shop?query=all()"

(4)编写测试用例。

(5)执行测试用例

有两种方式:a: ./run.sh arts-tuangou beta search                 默认pigeon节点 跑testcase

./run.sh arts-tuangou tuangou beta index          跑indexcase

./run.sh arts-tuangou beta search -p it.arts      指定pigeon节点

b:  将要用到的服务启动之后,利用pybot命令执行测试用例

pybot --loglevel debug --pythonpath $DIR/Library -d $DIR/../report-$repo-$casetype-tests --exclude onlyForProduct --exclude ignore --exclude biz -v APP_ROOT_DIR:$APP_ROOT_DIR $casesuit/$repo

在执行测试用例的过程中可能会出现诸多问题,如果是测试用例的问题,可以通过查看report来找问题出现的原因,如果是配置的问题,可以通过查看log来找问题出现的原因。

Robotframework自动化测试框架相关推荐

  1. python安装robotframework报错_Python3+RIDE+RobotFramework自动化测试框架搭建过程详解

    Python2.7已于2020年1月1日开始停用,之前RF做自动化都是基于Python2的版本. 没办法,跟随时代的脚步,我们也不得不升级以应用新的控件与功能. 升级麻烦,直接全新安装. 一.Pyth ...

  2. RobotFramework自动化测试框架-MongoDBLibrary库的使用

    笔者接着 RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作) 继续分享robotframework 对数据库中的MongoDB的详细操作.这是笔者第二 ...

  3. RobotFramework自动化测试框架的基础关键字(五)

    1.1.1        Run Keyword If判断的使用 Run Keyword If是一个常用的用来做逻辑判断的关键字,意思是如果满足了某一个判断条件,然后就会执行关键字,我们对list3中 ...

  4. RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

    Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍W ...

  5. 字节十年工程师整理的RobotFramework自动化测试框架介绍及应用

    目录 一.概念 二.特性 三.RF环境安装 四.RF的使用 五.RF的常用类库 六.RF的常用关键字的使用 七.准备UI自动化测试的环境 八.浏览器操作的关键字 九.元素定位 十.项目的三层架构 十一 ...

  6. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib

    如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...

  7. robotframework自动化测试修炼宝典_自动化测试之框架Cucumber和RobotFramework的实战对比...

    读完需要 18分钟 速读仅需 6 分钟 本文首发表于 InfoQ:http://www.infoq.com/cn/articles/cucumber-robotframework-comparison ...

  8. 自动化测试框架(从robotframework到hyrobot(黑羽robot) python语言)

    自动化测试框架- hyrobot 欢迎使用 黑羽robot 自动化框架 作用 Web自动化 性能测试 黑羽Robot(HyRobot) 安装 项目 用例和套件 用例标签.挑选用例执行.调试 根据名称挑 ...

  9. RobotFramework功能自动化测试框架基础篇

    目录 概念 特性 RF环境安装 RF的使用 1.新建项目 2.创建测试套件 3.创建测试用例 4.创建资源文件 5.页面操作介绍 RF的常用类库 1.标准库: 2.扩展库: 准备UI自动化测试的环境 ...

最新文章

  1. PAT甲级1076 Forwards on Weibo (30 分) :[C++题解]图论、bfs
  2. 安装mysql5.7
  3. CodeForces - 985F Isomorphic Strings(字符串哈希)
  4. java jsp公共异常页面_实际应用中JSP页面的异常处理
  5. xvhfeng的工作回忆总结(第二年)阅读手记
  6. 小米无缝切换60hz/90hz/120hz/144hz刷新率!
  7. [新闻]MacBook Pro新版上市
  8. VC遍历窗口上的控件
  9. docker下安装mysql数据库
  10. java 容器类 面试_校招面试之Java容器
  11. 电子统计台账:中文标记月度流水账格式数据的转换,以及过滤模板的普遍适配性
  12. 3d打印实用小工具--GCode Viewer在线预览GCODE文件
  13. java commons math_Apache Commons Math
  14. 推荐16个前端必备的实用工具与网站
  15. 武汉科技大学计算机学院挂牌,计算机国家级实验教学示范中心(武汉科技大学)2018年度教学指导委员会年度会议成功举办...
  16. 使用WIFIPR跑握手包,破解wifi密码
  17. oracle procmpt,oracle ebs 接口程序
  18. 近几年CVPR图像压缩总结
  19. 安卓开发:使用手机拍照功能
  20. php漂浮,【飘】【漂】:【飘浮】【漂浮】、【漂泊】【飘泊】【飘薄】

热门文章

  1. FFMPEG音频解码浅析
  2. 六、redis中AKF问题解决方案
  3. Rust 用于 STM32 开发
  4. 多个域名指向同一个网站实现方法
  5. 程序员苹果电脑使用入门
  6. 积分和微分电路分析及仿真
  7. Java类的加载及父类子类加载顺序
  8. 介绍一下ROS常用的命令<rosnode和rostopic实操>(一)
  9. 干草的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. ActiveMQ的简单实现