Docker+Selenium+Jenkins 实现web自动化测试

一、拉取镜像,启动selenium

更换国内镜像源:https://blog.csdn.net/anqixiang/article/details/96772479

镜像网盘下载:
链接:https://pan.baidu.com/s/17oRi_YQ3NGDzv1tlwc6QCw
提取码:o7dg

sudo docker pull selenium/hub
sudo docker pull selenium/node-chrome
sudo docker run -d -p 4444:4444 --name selehub selenium/hub
sudo docker run -d -p 5901:5555 --name node --link selehub:hub selenium/node-chrome

WEB验证

访问:http://172.16.38.238:4444/grid/console
Docker+Selenium+Jenkins 实现web自动化测试_第1张图片

二、编写Python测试脚本

1.安装selenium插件

sudo pip3 install selenium

安装失败的解决方法:https://blog.csdn.net/anqixiang/article/details/104656754

2. sele.py代码

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

from selenium import webdriver

selenium_url = "http://172.16.38.238:4444/wd/hub"               #selenium的访问地址
access_url = "http://www.baidu.com"                             #测试地址

chrome_capabilities ={
    "browserName": "chrome",
    "version": "",
    "platform": "ANY",
    "javascriptEnabled": True,
    "marionette": True,
}
browser = webdriver.Remote(selenium_url, desired_capabilities=chrome_capabilities)
browser.get(access_url)
browser.get_screenshot_as_file("./selenium/baidu.png")  #把访问结果截图保存到当前路径的selenium/baidu.png
browser.quit()

3.执行脚本

chmod +x sele.py
./sele.py

4.查看测试结果

在这里插入图片描述
将图片传到Windows桌面,进行查看
Docker+Selenium+Jenkins 实现web自动化测试_第2张图片
Docker+Selenium+Jenkins 实现web自动化测试_第3张图片

三、通过Jenkins实现自动测试,并返回结果

1.Python测试脚本sele.py有些许变化,根据返回的base64码来判断是否访问成功

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

from selenium import webdriver

selenium_url = "http://172.16.38.238:4444/wd/hub"               #selenium的访问地址
access_url = "http://172.16.38.238:8000"                        #测试地址

chrome_capabilities ={
    "browserName": "chrome",
    "version": "",
    "platform": "ANY",
    "javascriptEnabled": True,
}

browser = webdriver.Remote(selenium_url, desired_capabilities=chrome_capabilities)
browser.get(access_url)
result = str(browser.get_screenshot_as_base64())
if result[-1] != "=":                   #如果访问成功最后一位的值是"="号
    print("访问失败")
    browser.quit()
    exit(1)
print("访问成功")
browser.quit()
exit(0)

2.Jenkins中添加代码

根据selenium所在机器来进行配置,我是配置到远程主机上,也可以部署在Jenkins上

#selenium测试
cd /home/secneo && ./sele.py
[ $? -ne 0 ] && echo "访问失败" && exit 1
echo "访问成功"

Docker+Selenium+Jenkins 实现web自动化测试_第4张图片

你可能感兴趣的:(CI/CD,linux)