小王昨天改完登录模块,顺手 git push 到公司 GitLab,喝口水的工夫,邮箱就收到一封 Jenkins 发来的邮件:「构建成功,所有自动化测试通过 ✅」。他没点开任何页面,也没手动点运行按钮——测试已经悄悄跑完了。
为什么非得把 Jenkins 和自动化测试绑一起?
光写好测试用例没用。如果每次改完代码都得手动打开浏览器、点开测试脚本、等它跑完再看结果,三天就放弃。Jenkins 就是那个“不睡觉的测试员”:你一提交代码,它立刻拉代码、编译、启动服务、执行 Selenium 或 pytest 脚本,最后把通过率、失败截图、日志全记下来。
一个真实能跑通的小例子
假设你有个 Python Web 项目,用 pytest 写了 5 个接口测试,放在 tests/ 目录下。在 Jenkins 新建任务,配置「源码管理」连上你的 GitHub 仓库;「构建触发器」勾选「轮询 SCM」或更推荐的「GitHub hook trigger」;然后在「构建」步骤里加一条 shell 命令:
pip install -r requirements.txt
pytest tests/ --junitxml=report.xml再装个「JUnit Plugin」插件,把 report.xml 解析成可视化图表。下次你 push 一行 print('hello'),Jenkins 就会自动执行上面流程,失败时还高亮标出哪条测试挂了、错误堆栈在哪行。
别卡在环境配置上
新手常栽在「本地跑得好好的,Jenkins 里报找不到 chromedriver」。记住两点:一是 Jenkins 默认用 nobody 用户运行,权限不够就改 job 的「构建环境」→「以特定用户身份运行」;二是浏览器和驱动必须装在 Jenkins 所在服务器上(不是你本地),比如 Ubuntu 上跑 Chrome,就得 apt install chromium-browser + 下载对应版本的 chromedriver 放到 /usr/local/bin/ 下。
进阶一点:失败时自动发微信提醒
在 Jenkins 的「构建后操作」里,加个「Editable Email Notification」,或者更轻量的「WeChat Notification Plugin」。填上企业微信机器人 webhook 地址,配置模板:
[${BUILD_STATUS}] ${JOB_NAME} #${BUILD_NUMBER}
分支:${GIT_BRANCH}
耗时:${BUILD_TIME}
详情:${BUILD_URL}console测试挂了?手机马上弹出消息,不用守着 Jenkins 页面刷刷新。
自动化不是一步到位的事,但 Jenkins 结合自动化测试,真能让 QA 少点重复点击,让开发多点信心合代码——毕竟,谁不想看到绿色的「Success」像呼吸一样自然呢。