Jenkins + Robot Framework 安装
检查环境,安装Python和RF1. 查看版本(适用于Center OS, redhat)[root@xxxx ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) 如果用yum检查不到Python或Chromedriver,或ChromeBrowser,可执行下面2,32. 更新rpmforg...
检查环境,安装Python和RF
1. 查看版本(适用于Center OS, redhat)
[root@xxxx ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
如果用yum检查不到Python或Chromedriver,或ChromeBrowser,可执行下面2,3
2. 更新rpmforge软件库
http://rpmfind.net/linux/rpm2html/search.php?query=rpmforge-release(x86-64)
在上面路径获取到包路径后,下载:
wget http://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
作用可参考:http://blog.itpub.net/22664653/viewspace-704989/
3. 按照下文更新yum源:
http://mirrors.163.com/.help/centos.html
在使用yum 安装软件的时候同样会遇到
ImportError:No module nameed urlgrabber.grabber
同上面的方法修改一下文件
vi /usr/libexec/urlgrabber-ext-down
4. 按照下文更新python:
https://blog.csdn.net/u010856284/article/details/78049685
更新python注意创建链接的命令是ln -s 目标文件 将生成的链接文件,注意参考文档可能存在错误。
5. 安装pip
回到/usr/local/src,下载:
wget https://bootstrap.pypa.io/get-pip.py
执行:
python get-pip.py
修改/usr/bin/下的所有pip文件,备份后,用/usr/local/python2715/bin下的pip创建链接到/usr/bin下
mv pip pip.bak
mv pip2 pip2.bak
mv pip2.7 pip2.7.bak
ln -s /usr/local/python2715/bin/pip /usr/bin/pip
在root用户的.bash_profile里加入pip的路径
6. 安装RF
pip install robotframework
7. 安装selenium
pip install robotframework-selenium2library
https://pypi.org/project/robotframework-seleniumlibrary/
8. 安装requests
pip install robotframework-requests
9. 安装常用第三方RF库(可选)
https://blog.csdn.net/u013961875/article/details/78670249
10. 需要指定版本安装时,可以:
sudo pip install ipython==8888 #现指定一个不存在的版本以查看可用版本,发现5版本中有5.7.0(你的可能不一样)sudo pip install ipython==5.7.0
11. 安装GCC-C++(可选)
当发现gcc: error trying to exec 'cc1plus': execvp: No such file or directory错误时,需要安装gcc-c++:
yum install gcc-c++
12. 安装GIT
yum install git
13. 增加jenkins用户,tester用户
jenkins用户主路径:/home/jenkins
tester用户主路径:/home/test
在jenkins用户下增加workspace文件夹
在jenkins用户主路径下增加.ssh文件夹,将jenkins测试服务器的jenkins用户(这个要看在jenkins服务器上是否以jenkins用户启动的jenkins)的id_rsa文件拷贝一份放在这里。再在gitlab上,jenkins用户秘钥的pub文件拷贝进去。
尝试用jenkins用户拉取下代码。
以下是在Ubuntu上的部分配置,其中安装chromedriver和chrome浏览器是需要的
apt安装工具(Ubuntu上的安装步骤,CentOS可忽略)
例如,想安装tree工具:
- 先查询tree包:
root@XXXX-01:~# apt list tree
Listing... Done
tree/xenial 1.7.0-3 i386
- 安装tree:
root@XXXX-01:~# apt install tree
其他安装方法:
rpm可以安装包,但不能自动解决依赖包的关系,也无法直接从网上下载包
除了rpm以外,还有yum工具
如果跑case中发现提示没有chrome driver,可以如下逐步排除问题:
1. 如果是没有装chromedriver:
查找chromedriver
root@xxxx-01:~# apt search chromedriver
Sorting... Done
Full Text Search... Done
chromium-chromedriver/xenial-security,xenial-updates,now 66.0.3359.139-0ubuntu0.16.04.3 i386 [installed]
WebDriver driver for the Chromium Browser
chromium-chromedriver-dbg/xenial-security,xenial-updates 51.0.2704.79-0ubuntu0.16.04.1.1242 i386
chromium-chromedriver debug symbols
安装chromedriver
apt install chromium-chromedriver
查找chromedriver的安装路径
dpkg -L chromium-chromedriver
给jenkins用户配置.profile,使之能访问chromedriver:
export PATH=$PATH:/usr/lib/chromium-browser
后来发现从root用户进到jenkins是不会引用这个文件,因此还是修改.bashrc文件。
2. 如果是没有装chrome-browser
安装chrome-browser
apt search chrome-browser
从查询的结果里面找到完整名称,再安装
apt install chrome-browser-stable
若安装不了,需查看原因,是否是操作系统32位无法安装64位程序的问题。(如果是操作系统32位的问题,建议重装操作系统,i386,i686均为32位操作系统,需装amd64即64位系统。)
uname -a
若是找不到安装包,也可以尝试更新本地更新服务器列表:
apt update
还可以手动增加更新服务器路径:
sudo sh -c "echo 'deb http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list"
在centos中安装chrome-browser:
可参考这篇文章:https://blog.csdn.net/u010472499/article/details/72327963
在这里下载安装包:
https://www.chrome64bit.com/index.php/google-chrome-64-bit-for-linux
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
安装过程中如果提示
warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
libappindicator3.so.1()(64bit) is needed by google-chrome-stable-66.0.3359.181-1.x86_64
在这里可下载到 libappindicator-gtk3
https://pkgs.org/download/libappindicator3.so.1
yum install libappindicator-gtk3.x86_64
chrome的安装路径:
/usr/bin/google-chrome-stable
执行如下命令,顺利的话会提示已经抓图:
google-chrome-stable --no-sandbox --headless --disable-gpu --screenshot https://www.sina.com.cn/
chrome的安装还可以参考:
https://blog.csdn.net/zhuyiquan/article/details/79537623
执行pybot
pybot /home/jenkins/workspace/MSP/smoke/TestCase/*.robot
RF case无法打开浏览器:
1. 因为没有用headless模式,具体是修改case里的浏览器名为headlesschrome
2. 因为装了robotframework-extendedselenium2library,而这个库用的robotframework-selenium2library是1.8.0不支持headless模式:
robotframework-extendedselenium2library 0.9.2 has requirement robotframework-selenium2library==1.8.0
解决方法是卸载并重装robotframework-selenium2library
3. chromedriver没装对(运行chromedriver -version检查)
4. google-chrome没装对(ls -al /usr/bin/*chrome* 找到浏览器程序后,直接执行检查结果)
Jenkins配置:
1. 增加Node:
在系统管理,管理节点里添加Node:
将配置好的node产生的agent.jar上传到TestNode服务器的/home/jenkins路径
上图中,agent.sh是在TestNode启动节点的脚本,也在/home/jenkins下:
#!/bin/sh
source /etc/profile
exec java -jar ~/agent.jar
2. 配置JOB
新建JOB
指定只能运行在前面提到的TestNode节点上:
添加Credentials:
这里面的Credentials是在jenkins首页左边菜单里添加:
配置测试脚本所在的GIT库:
配置构建脚本
配置构建后操作
跑下结果:
乱码:
如果在上图中jenkins的RF报告图表有部分字体为乱码,
需要安装字体:
yum install dejavu-sans-fonts.noarch dejavu-sans-mono-fonts.noarch
具体字体是哪些,可以从report.html中看到:
/* Generic and misc styles */
body {
font-family: Helvetica, sans-serif;
font-size: 0.8em;
color: black;
padding: 6px;
background: white;
}
更多推荐
所有评论(0)