• Jenkins集成selenium


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

    1.准备selenium测试脚本

    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,



    将生成的token复制保存

    2.2获取用户已有的token

    用户中心-凭据-获取已有的token

    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
    

    结果:

    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即可访问目录下的文件

  • 相关阅读:
    python16_day18【Django_Form表单、分页】
    python16_day17【Django_session、ajax】
    django【orm操作】
    python16_day16【Django_ORM、模板】
    python16_day15【Django入门】
    python16_day14【jQuery】
    python16_day13【css、js】
    python16_day12【html、css】
    python16_day11【MQ、Redis、Memcache】
    python16_day10【SelectWeb、SelectWget、paramiko、pymysql】
  • 原文地址:https://www.cnblogs.com/csj2018/p/9978420.html
Copyright © 2020-2023  润新知