Jenkins集成selenium

本文详细介绍了如何将Selenium测试用例集成到Jenkins中,实现自动化测试的高效执行。通过Python脚本实现多浏览器并发测试,利用Jenkins进行任务调度与报告分享,最后通过curl命令触发构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:将selenium用例集成到Jenkins,需要执行时,只需要执行curl命令即可。

1.准备selenium测试脚本

1418970-20181118213913583-1717650253.png

from selenium import webdriver
import sys
from threading import Thread
from time import sleep, ctime
#使用多线程启动多个浏览器完成测试,并生成report
def test_baidu(browser,value):
    if browser == "safari":
        driver = webdriver.Safari()
    elif browser == "chrome":
        path = sys.path[0].replace("testcase", "") + "driver/chromedriver"
        driver = webdriver.Chrome(executable_path=path)
    elif browser == "firefox":
        path = sys.path[0].replace("testcase", "") + "driver/geckodriver"
        driver = webdriver.Firefox(executable_path=path)
    driver.implicitly_wait(5)
    driver.get("http://www.baidu.com")
    print("打开百度")
    driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys(value)
    driver.find_element_by_xpath("//input[@value='百度一下' and @id='su']").click()
    result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text
    assert "百度为您找到相关结果约" in result_text
    sleep(3)
    driver.quit()
    print("退出", browser)

if __name__ == "__main__":
    lists = {"chrome": "叶孤城", "firefox": "西门吹雪", "safari": "陆小凤"}
    threads = []
    files = range(len(lists))
    for browser, value in lists.items():
        t = Thread(target=test_baidu, args=(browser, value))
        threads.append(t)
    for t in files:
        threads[t].start()
    for t in files:
        threads[t].join()
    print("end:", ctime())

2.建立Jenkins任务

可以构建定时任务、在其他任务构建完成后触发,本次采用命令行调用的方式构建

2.1生成用户的token

进入用户——设置,选择API TOKEN,添加name并生成一个token,
1418970-20181118164628116-2138073377.png
1418970-20181118165424345-1684830841.png
1418970-20181118165443817-822200351.png
将生成的token复制保存

2.2获取用户已有的token

用户中心-凭据-获取已有的token
1418970-20190102085515753-839809228.jpg

2.3建立Jenkins任务

  • 1.构建一个自由风格的项目SeleniumOnJenkins
  • 2.构建触发器,填入token
  • 3.构建,执行shell命令
python /Users/chenshanju/PycharmProjects/SeleniumOfJenkins/testcase/BaiduSearch.py 

3.命令行执行

curl -n -X POST http://127.0.0.1:8080//job/SeleniumOnJenkins/build?token=11da383400045fcd47fecc357dc97f84a8 --user chenshanju:123456

结果:
1418970-20181118211723232-1421664359.png

4.分享report报告

4.1windows通过部署Apache服务共享report报告

https://blog.csdn.net/sunqian666888/article/details/78561399

  • 1.下载,解压,将Apache24文件夹剪切到D盘
  • 2.修改配置文件,只需要修改第37行即可 Define SRVROOT "d:/Apache24"
  • 3.运行服务器 D:/Apache/bin/httpd.exe
  • 4.服务器搭建成功 主机IP:port
    我将配置文件中的路径修改为report路径,未生效。所以,需要修改测试脚本中的report报告目录。

    4.2windows通过IIS服务共享report报告

    https://jingyan.baidu.com/article/eae0782753a38c1fec548526.html
    如果通过这种方式,指定的是文件,需要保证每次的测试报告名称相同;指定目录,没有尝试。

    4.3mac通过自带的Apache共享report报告

    https://www.cnblogs.com/silence-wzx/p/5137766.html
sudo apachectl start
sudo apachectl restart
sudo apachectl stop

apache目录:/Library/WebServer/Documents/
将report文件复制到Apache目录下:sudo cp report.html /Library/WebServer/Documents/
http://127.0.0.1/report.html即可访问目录下的文件

转载于:https://www.cnblogs.com/csj2018/p/9978420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值