当前位置:首页>python>0基础转行测试Python+Selenium自动化环境搭建 + 10道面试题,照着做就行

0基础转行测试Python+Selenium自动化环境搭建 + 10道面试题,照着做就行

  • 2026-10-11 07:53:52
0基础转行测试Python+Selenium自动化环境搭建 + 10道面试题,照着做就行

哈喽,我是老喜!Python+Selenium自动化环境搭建 + 10道面试题,照着做就行

很多朋友说:老喜,我想学自动化,但环境都搭不起来,一报错就懵。
别慌,今天这篇纯干货。我手把手带你从零跑通第一个脚本,再把面试官最爱问的10个问题一次讲透。
我是一个笨人,也是一个懒人。我能学会,你肯定也能。


第一部分:环境搭建——从零跑通第一个脚本

01 为什么选 Python + Pytest + Selenium?

  • Python:语法像说话,上手极快,测试开发的第一选择

  • Pytest:比 unittest 灵活,支持夹具、参数化,插件生态丰富

  • Selenium:Web自动化的老大哥,Chrome、Firefox都能跑

这三兄弟组合,就是自动化测试的“黄金搭档”。

02 第一步:安装 Python(别漏掉勾选)

  1. 去 python.org 下载 3.8 及以上版本(推荐3.9/3.10)

  2. 安装时务必勾选 Add Python to PATH —— 这一步漏了后面全是坑

  3. 打开命令行(Win+R 输入 cmd),输入:

    bash

    python --version

    看到版本号就成功了。如果提示“不是内部命令”,那就是PATH没加上,手动去系统环境变量里把Python和Scripts目录加进去。

03 第二步:安装 Pytest 和常用插件

bash

pip install pytestpytest --version# 验证

一次性装好增强插件,后面省事:

bash

pip install pytest-html            # HTML报告pip install pytest-xdist           # 多核并发pip install pytest-rerunfailures   # 失败重试pip install pytest-ordering        # 控制执行顺序

04 第三步:安装 Selenium 和浏览器驱动

  1. 安装 Selenium 库:

    bash

    pip install selenium
  2. 下载 ChromeDriver:

    • 查看Chrome版本:地址栏输入 chrome://version/

    • 去 ChromeDriver官网 下载对应版本

  3. 配置驱动(推荐第一种):

    • 把 chromedriver.exe 扔到 Python 安装目录下的 Scripts 文件夹

    • 或者代码里用 Service 指定路径(后面会讲)

05 验证环境:跑通第一个脚本

新建 test_demo.py,复制下面代码:

python

import pytestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport timeclassTestBaidu:defsetup_method(self):        self.driver = webdriver.Chrome()        self.driver.implicitly_wait(10)        self.driver.maximize_window()defteardown_method(self):        self.driver.quit()deftest_baidu_search(self):        self.driver.get("https://www.baidu.com")        self.driver.find_element(By.ID,"kw").send_keys("自动化测试")        self.driver.find_element(By.ID,"su").click()        time.sleep(2)assert"自动化测试"in self.driver.titleprint("测试通过!")if __name__ =="__main__":    pytest.main(["-v","test_demo.py"])

在命令行执行:

bash

pytest test_demo.py -v

如果看到浏览器自动打开、搜索、关闭,并显示 PASSED,恭喜你,环境搞定!

06 几个常见坑(我踩过的)

  • 驱动版本不匹配:ChromeDriver 必须和你电脑上的 Chrome 版本一致,差一个版本都不行。

  • 找不到驱动:检查 chromedriver.exe 是不是在 Scripts 里,或者代码里用 Service 指定绝对路径。

  • “受到自动化软件控制”提示:加 Chrome 选项去掉条幅:

    python

    from selenium.webdriver.chrome.options import Optionsoptions = Options()options.add_experimental_option("excludeSwitches",["enable-automation"])driver = webdriver.Chrome(options=options)

07 项目结构推荐(新手照着建)

text

project/├── tests/           # 测试用例│   ├── test_login.py│   ├── test_search.py│   └── conftest.py  # fixture├── pages/           # Page Object 页面对象├── utils/           # 工具类(驱动管理、配置读取)├── reports/         # 测试报告└── requirements.txt

运行命令:

bash

pytest tests/ --html=reports/report.html   # 生成报告pytest tests/ -n2# 2核并发pytest tests/ --reruns2# 失败重试2次

🤖 AI提效小贴士:以后你写UI脚本,完全可以让AI帮你生成 Selenium 或 Playwright 的骨架代码。你只需要说“用Python+Selenium写一个百度搜索的自动化脚本”,AI几秒就给你,你把定位器改一改就能跑。省下的时间,去搞懂框架设计,这才是高性价比的进阶。


第二部分:10道高频面试题,让你对答如流

环境搭好了,脚本能跑了,面试官的问题你也得接得住。下面这10个问题,个个经典,我直接把回答思路给你。

1. 你们公司的接口自动化框架是如何搭建的?

回答模板:
我们使用 Python + Requests + Pytest。

  • 封装了 Requests 统一请求、Yaml 配置、数据驱动、PyMySQL 数据库操作

  • Fixture 管理登录态,Allure 生成报告

  • 目录分层:testcases、configs、testdatas、utils、reports

  • 用 Jenkins 做持续集成,每晚定时跑

2. 公司自动化测试的落地情况?(用例数、执行时长)

有项目经验:
“我负责的项目有30多个接口,自动化用例约300条,每次执行30分钟左右。Jenkins定时跑,失败钉钉告警,发现过参数错误、环境问题等。”

无实际项目(但自学过):
“目前公司项目变更频繁,没大面积落地。但我自己搭了demo框架,针对开源项目跑了上百条用例,熟练掌握了配置和CI。”

3. 你在框架中主要负责哪些部分?团队如何协作?

“我主要负责请求封装、关联接口处理、Yaml用例规范、日志监控,也写大量用例。
团队用Git分支开发,合并前代码评审,保证框架稳定。”

4. 已经有 Postman、JMeter,为什么还要写代码做自动化?

  • 大中型项目接口多,代码版控更安全,可维护性高

  • 工具容易暴露接口,代码可以封装鉴权,更安全

  • 代码支持复杂前置/后置处理,日志灵活

  • 方便集成CI/CD,实现全自动回归

  • 报告更专业(Allure)

5. 接口之间如何关联(例如 token 传递)?

方法一:前一个接口 return 出 token,后面直接用。
方法二:用 Pytest fixture。定义一个 fixture 发送登录请求并 yield token,测试用例在参数中引用该 fixture 即可自动获取。

6. 框架如何实现数据驱动?

用 @pytest.mark.parametrize 装饰器,从 Excel/Yaml 读取多组数据,注入同一个测试逻辑,实现不同参数组合的覆盖。

7. 为什么要用 Yaml 作为配置文件?

Yaml 比 ini、conf 更简洁,层级清晰,支持列表、字典。数据库信息、域名、账号等放 Yaml 里,修改方便,多环境切换也简单。

8. 接口自动化测试的数据通常放在哪里?

  • 基础配置(URL、数据库连接)放静态文件(Yaml)

  • 测试数据(请求参数、预期结果)放 Excel、Yaml、Json,或直接从数据库读

  • 结构化用例数据通常用 Excel 管理,方便维护

9. 一个接口一般设计多少测试用例?怎么设计?

单接口通常20~30条:

  • 正向:正常请求、必填参数

  • 鉴权反例:token为空/错误/过期

  • 参数反例:必填缺失、长度/类型/格式错误

  • 错误码覆盖

  • 分页边界、特殊字符等

常用方法:等价类、边界值、场景法。

10. 接口测试中如何进行数据验证?

分两块:

  • 响应报文验证:用 JsonPath 提取字段,断言对比预期值

  • 数据库验证:分析接口影响的表和字段,写SQL查询,断言库内数据是否正确(不涉及数据变更的接口可不校验)


写在最后

今天这篇,我们从零搭好了 Python + Selenium 环境,跑通了第一个脚本,还拆解了10道高频面试题。如果你是新手,强烈建议你今天就照着做一遍。遇到报错别慌,直接复制报错信息问AI。

我是一个笨人,也是一个懒人。我能学会,你肯定也能。研究透了我才会讲,希望给你带来一点帮助。

如果你想要 环境搭建的截图版文档 + 项目模板 + AI 提效的提示词范例,扫码加我微信 AITestLaoXi,免费领取,拉你进 【测试人AI提效群】。

你那么帅,那么美,觉得有用?点个在看、分享给还在环境配置里挣扎的测试新人。

最新文章

随机文章