点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


通过以下步骤,可以自动化执行 Selenium 测试,确保代码质量,并将测试结果集成到流程中。
环境准备
测试环境为:python + jenkins + selenium + allure
运行jenkins前提是安装好jdk,并配置好环境变量,jdk下载链接:
https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe
访问 Jenkins 官网:https://www.jenkins.io/download/
并下载适合 Windows 的 jenkins.war 文件。
打开cmd并运行以下命令启动 Jenkins:
java -Dfile.encoding=UTF-8 -jar F:\jenkins.war --httpPort=8081
注:jenkins默认端口为8080和tomcat冲突,所以指定端口--httpPort=8081。
创建管理员用户 ---> 解锁jenkins ---> 安装基本插件
详细安装步骤:https://blog.csdn.net/xhmico/article/details/125622955
下载并安装python。
命令:
pip install selenium pip install pytest
Selenium 需要通过 WebDriver 与不同的浏览器进行交互。
根据使用的浏览器下载相应的 WebDriver:
Chrome 浏览器用户
下载 ChromeDriver(https://sites.google.com/chromium.org/driver/)
Firefox 浏览器用户
下载 GeckoDriver(https://github.com/mozilla/geckodriver/releases)
将下载的 WebDriver 解压,并将其路径添加到系统的 PATH环境变量中。
解压并配置环境变量。
pip install allure-pytest
编写selenium测试用例
2.1 用例介绍
页面登录用例,脚本中有两个用例:
一个登录成功用例;
一个登录失败用例。
脚本路径为:
C:\Users\songz\PycharmProjects\selenium_project\testcase\log\test_admin_login.py
2.2 脚本文本
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pytest
class TestAdminLogin(object):
def setup_class(self):
self.driver = webdriver.Chrome()
self.driver.get('http://localhost:8080/jpress/user/login')
self.driver.maximize_window()
#测试登录失败
def test1_admin_login_code_error(self):
username = 'admin'
pwd = '12345'
captcha = '666'
expected = '用户名或密码不正确'
self.driver.find_element(By.NAME, 'user').send_keys(username)
self.driver.find_element(By.NAME, 'pwd').send_keys(pwd)
self.driver.find_element(By.CLASS_NAME, 'btn').click()
WebDriverWait(self.driver, 5).until(EC.alert_is_present())
alert = self.driver.switch_to.alert
#py断言
assert alert.text == expected
alert.accept()
sleep(5)
#测试登录成功
@pytest.mark.dependency(name='admin_login')
def test2_admin_login_code_ok(self):
username = 'admin'
pwd = '123456'
captcha = '666'
expected = '用户中心'
self.driver.find_element(By.NAME, 'user').clear()
self.driver.find_element(By.NAME, 'user').send_keys(username)
self.driver.find_element(By.NAME, 'pwd').clear()
self.driver.find_element(By.NAME, 'pwd').send_keys(pwd)
self.driver.find_element(By.CLASS_NAME, 'btn').click()
WebDriverWait(self.driver, 5).until(EC.title_is(expected))
assert expected == self.driver.title
sleep(5)
if __name__ == '__main__':
pytest.main(['test_admin_login.py'])
配置jenkins作业




构建后操作,选择Allure Report:


点击应用,点击保存。


3.6 进入jenkins


可以看到运行成功,两个测试用例测试完毕。
监控和维护
随着时间推移,项目依赖的库可能会有新版本发布。定期更新并测试这些依赖,以确保项目的兼容性和安全性。
Jenkins功能强大,配合相应的插件可以实现定时运行项目,项目中如有测试用例失败可以实现邮件、钉钉通知,以便立即修复问题。

本文作者:宋振宝(上海新炬中北团队)
本文来源:“IT那活儿”公众号





