手把手搭建Python+Pytest+Selenium自动化环境,从零开始一点都不难!

今天给大家带来一篇纯干货教程,保证小白也能看懂学会!

最近很多朋友在问:“二黑,我想学自动化测试,但环境都搭不起来,老是报错怎么办?”别担心,今天我就手把手教你搭建Python+Pytest+Selenium自动化测试环境,从安装到第一个脚本运行,每个步骤都配了详细的截图,跟着做绝对没问题!

01 为什么要选这个技术栈?

先简单说说为什么推荐这个组合:

Python:语法简单,上手快,社区资源丰富,绝对是自动化测试的首选语言
Pytest:比unittest更强大、更灵活的测试框架,插件多,写法简单
Selenium:Web自动化测试的老大哥,支持多种浏览器,功能强大

这三个加起来,简直就是自动化测试的“黄金组合”!

02 环境搭建详细步骤

好了,废话不多说,我们直接进入正题!

第一步:安装Python

Python是我们的基础,必须首先安装。

1. 下载Python

访问Python官网:https://www.python.org/downloads/

https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
Python官网下载页面

建议下载Python 3.8及以上版本,我这里以Python 3.9为例。记得要勾选"Add Python to PATH"!

2. 验证安装

安装完成后,打开命令行(Win+R,输入cmd),输入:

python --version

如果显示Python版本号,说明安装成功!

https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
验证Python安装

遇到问题怎么办?

如果提示"python不是内部或外部命令",说明环境变量没配置好。手动添加一下:

  • 右键"此电脑"→"属性"→"高级系统设置"→"环境变量"

  • 在系统变量中找到Path,双击编辑

  • 添加Python的安装路径和Scripts路径,比如:

C:\Python39\C:\Python39\Scripts\

第二步:安装Pytest

Pytest是我们的测试框架,安装超简单。

1. 使用pip安装

在命令行中输入:

pip install pytest

2. 验证安装

安装完成后,输入:

pytest --version

会显示pytest的版本信息,这样就OK了!

3. 安装常用插件

为了后面用着更方便,我们可以一次性安装几个常用插件:

pip install pytest-html        # 生成HTML报告pip install pytest-xdist       # 分布式测试pip install pytest-rerunfailures  # 失败重试pip install pytest-ordering    # 控制用例执行顺序

第三步:安装Selenium

Selenium是重头戏,用来控制浏览器进行自动化测试。

1. 安装Selenium库

在命令行中输入:

pip install selenium

2. 下载浏览器驱动

Selenium需要浏览器驱动才能工作,以Chrome为例:

  • 查看Chrome版本:在浏览器地址栏输入chrome://version/

  • 访问ChromeDriver官网:https://chromedriver.chromium.org/

  • 下载对应版本的驱动

https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
ChromeDriver下载页面

3. 配置浏览器驱动

有三种配置方法,推荐第一种:

方法一:放到Python安装目录下

直接把下载的chromedriver.exe放到Python的Scripts目录下,这样最简单。

方法二:配置环境变量

把chromedriver所在目录添加到系统Path环境变量中。

方法三:代码中指定路径

在代码中指定驱动路径(后面会演示)。

03 验证环境是否成功

环境装好了,我们来写个简单的测试脚本验证一下。

创建一个名为test_demo.py的文件,输入以下代码:

import pytestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport timeclassTestBaidu:    """百度搜索测试用例"""
    defsetup_method(self):        """每个测试方法前执行"""        # 创建浏览器驱动        self.driver = webdriver.Chrome()  # 如果驱动在PATH中,可以直接这样写        self.driver.implicitly_wait(10)   # 隐式等待10秒        self.driver.maximize_window()     # 最大化窗口
    defteardown_method(self):        """每个测试方法后执行"""        # 关闭浏览器        self.driver.quit()
    deftest_baidu_search(self):        """测试百度搜索功能"""        # 打开百度        self.driver.get("https://www.baidu.com")
        # 定位搜索框并输入关键词        search_box = self.driver.find_element(By.ID, "kw")        search_box.send_keys("自动化测试")
        # 定位搜索按钮并点击        search_btn = self.driver.find_element(By.ID, "su")        search_btn.click()
        # 验证搜索结果        time.sleep(2)  # 等待页面加载        assert"自动化测试"in self.driver.title        print("测试通过!")if __name__ == "__main__":    pytest.main(["-v", "test_demo.py"])

保存文件,在命令行中运行:

pytest test_demo.py -v

如果看到浏览器自动打开,完成搜索操作然后关闭,并且命令行显示测试通过,恭喜你,环境搭建成功!

https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
测试运行结果

04 常见问题及解决方案

大家在搭建环境时可能会遇到一些问题,这里整理了几个常见的:

问题一:浏览器驱动版本不匹配

现象:报错提示"This version of ChromeDriver only supports Chrome version XX"

解决:确保ChromeDriver版本与Chrome浏览器版本匹配,最好都使用最新版。

问题二:找不到浏览器驱动

现象:报错提示"WebDriver exception: 'chromedriver' executable needs to be in PATH"

解决

  1. 检查chromedriver是否在Python的Scripts目录下

  2. 或者在代码中指定驱动路径:

from selenium.webdriver.chrome.service import Serviceservice = Service(r"C:\path\to\chromedriver.exe")driver = webdriver.Chrome(service=service)

 

问题三:浏览器被安全策略阻止

现象:浏览器启动时提示"受到自动化软件控制"

解决:添加选项绕过这个提示:

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

05 进阶配置:让框架更好用

基础环境搭好了,我们再配置一些实用的功能。

1. 生成测试报告

安装pytest-html后,可以生成漂亮的HTML报告:

pytest test_demo.py --html=report.html

2. 并发执行测试

安装pytest-xdist后,可以并行运行测试用例,大大提高执行速度:

pytest test_demo.py -n 2  # 使用2个CPU核心

3. 失败重试

安装pytest-rerunfailures后,可以让失败的用例自动重试:

pytest test_demo.py --reruns 2  # 失败重试2次

06 项目结构规划

一个良好的项目结构很重要,推荐这样组织你的自动化项目:

project_name/├── tests/                    # 测试用例目录│   ├── test_login.py        # 登录测试│   ├── test_search.py       # 搜索测试│   └── conftest.py          # pytest配置文件├── pages/                   # 页面对象目录│   ├── login_page.py        # 登录页面│   └── search_page.py       # 搜索页面├── utils/                   # 工具类目录│   ├── driver_manager.py    # 浏览器管理│   └── config_reader.py     # 配置读取├── reports/                 # 测试报告目录├── logs/                    # 日志目录└── requirements.txt         # 依赖包列表

07 编写一个完整的测试用例

让我们写一个更完整的例子,使用页面对象模式:

1. 首先创建页面类pages/baidu_page.py

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECclassBaiduPage:    def__init__(self, driver):        self.driver = driver        self.wait = WebDriverWait(driver, 10)
    defopen_baidu(self):        """打开百度首页"""        self.driver.get("https://www.baidu.com")        return self
    defsearch(self, keyword):        """执行搜索"""        # 等待搜索框可见        search_box = self.wait.until(            EC.visibility_of_element_located((By.ID, "kw"))        )        search_box.clear()        search_box.send_keys(keyword)
        # 点击搜索按钮        search_btn = self.driver.find_element(By.ID, "su")        search_btn.click()
        return self
    defget_title(self):        """获取页面标题"""        return self.driver.title

2. 然后创建测试用例tests/test_baidu_search.py

import pytestfrom pages.baidu_page import BaiduPageclassTestBaiduSearch:    """百度搜索测试类"""
    @pytest.fixture(autouse=True)    defsetup(self, driver):        """初始化"""        self.driver = driver        self.baidu_page = BaiduPage(driver)
    deftest_search_python(self):        """测试搜索Python"""        self.baidu_page.open_baidu().search("Python教程")        assert"Python教程"in self.baidu_page.get_title()
    deftest_search_automation(self):        """测试搜索自动化测试"""        self.baidu_page.open_baidu().search("自动化测试")        assert"自动化测试"in self.baidu_page.get_title()

3. 创建配置文件tests/conftest.py

import pytestfrom selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Options@pytest.fixture(scope="session")defdriver():    """创建浏览器驱动,整个测试会话只执行一次"""
    # 配置Chrome选项    chrome_options = Options()    chrome_options.add_argument("--disable-blink-features=AutomationControlled")    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    # 创建驱动实例    driver = webdriver.Chrome(options=chrome_options)    driver.implicitly_wait(10)    driver.maximize_window()
    yield driver
    # 测试结束后关闭浏览器    driver.quit()

运行测试:

pytest tests/test_baidu_search.py -v --html=reports/report.html

08 学习建议和下一步

环境搭好了,接下来该怎么学?给大家几点建议:

1. 先掌握基础知识

  • Python基础语法

  • Selenium常用API(元素定位、页面操作等)

  • Pytest断言和夹具使用

2. 然后学习进阶内容

  • 页面对象模式(Page Object Model)

  • 数据驱动测试

  • 测试报告优化

  • 持续集成

3. 实战项目练习

  • 找一个熟悉的网站进行自动化练习

  • 从简单的登录、搜索功能开始

  • 逐步扩展到复杂业务流程

09 总结

好了,今天的内容就到这里。我们完整地走了一遍Python+Pytest+Selenium环境搭建的过程,包括:

  • ✅ Python安装和配置

  • ✅ Pytest安装和插件配置

  • ✅ Selenium安装和驱动配置

  • ✅ 第一个自动化脚本编写和运行

  • ✅ 常见问题解决

  • ✅ 项目结构规划

  • ✅ 完整测试用例示例

环境搭建是自动化测试的第一步,也是很多新手容易卡住的地方。希望这篇教程能帮你顺利迈出第一步!

如果在搭建过程中遇到什么问题,欢迎在评论区留言,我会尽力帮大家解决!

本文原创于【程序员二黑】公众号,转载请注明出处!

欢迎大家关注笔者的公众号:程序员二黑,专注于软件测试干活分享,全套测试资源可免费分享!

最后如果你想学习软件测试,欢迎加入笔者的交流群:946094265,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成都恒利泰滤波器HT-LFCG-490+

成都恒利泰滤波器HT-LFCG-490+最近终于把一块用了两年的LFCG—490+换下来,替换成国产的HT-LFCG-490+,两块芯片尺寸都是两点零乘一点二五毫米,八脚LTCC封装,厚度不到一毫米,回流焊温度曲线完全不用改,老线路板直接…

2025年甲醛气候箱人造板甲醛释放量检测气候箱定制厂家权威推荐榜单:人造板甲醛检测气候箱/人造板甲醛箱/甲醛检测气候箱源头厂家精选

在人造板、家具及室内装饰材料领域,甲醛释放量检测已成为衡量产品环保品质的重要指标。甲醛气候箱检测设备通过模拟不同温湿度环境条件,能够精确测定材料中甲醛等挥发性有机化合物的释放浓度,检测精度可达0.001mg/m…

Photoshop 新伴侣!ACR 2026 五大新功能实战教学(附使用技巧)

Adobe Camera Raw 2026(简称 ACR 2026) 是 Adobe 推出的新一代 RAW 图像解码与无损编辑引擎,为摄影师、后期设计师与视觉创作者提供高精度的色彩控制与影像优化体验。 作为 Photoshop 与 Lightroom Classic 的核心底…

2025 年塔钟生产厂家最新推荐榜单:电子 / 户外 / 建筑等多类型塔钟品牌实测,核心机芯与服务深度解析

引言 塔钟选购中,计时精度不足、耐用性差、服务断层等问题频发,据行业协会最新测评数据显示,超 60% 的用户曾遭遇机芯寿命短于 5 年、售后响应超 72 小时等问题。为提供权威参考,本次榜单由行业协会联合第三方检测…

2025年钢格栅生产商哪家好?中国十大钢格栅厂家年度排名权威测评与深度解析

TOP1推荐:安平县振邦丝网制品有限公司 评价指数:★★★★★ 口碑评分:99分 行业表现:A+++++级 电话号码:15690197966 官网:https://www.apzhenbang.com/ 介绍: 安平县振邦丝网制品有限公司是中国丝网之乡安平千…

免登录使用 WPS Office 编辑功能

新建文件 .reg 复制粘贴保存 双击打开 是是确定Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin] "alreadyHandleRecordNewDeviceInfo"=…

性能优化:子查询展开导致SQL性能下降

性能优化:子查询展开导致SQL性能下降我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码…

2025 年消防培训学校最新推荐排行榜权威发布,优质机构实力解析及选择指南

引言 近期,消防行业专业协会联合第三方测评机构完成了年度消防培训品牌测评工作,本次测评覆盖全国范围内 200 余家消防培训机构,采用 “资质审核 + 教学评估 + 学员反馈 + 就业追踪” 四维测评体系,最终筛选出综合…

四季南山倍贝高HMO奶粉、奕系列奶粉专业解析

在健康意识觉醒的当下,一罐精准匹配需求的奶粉,早已超越营养补给的基础属性,成为不同年龄段人群守护健康的定制化武器。面对市场上琳琅满目的奶粉品牌,如何找到既符合需求又兼具品质与口碑的产品?以下结合儿童、中…

哪些企业适合做GEO?中国五大有实力的AI搜索优化服务商权威测评与深度解析

TOP1推荐:湖南牵忆科技有限公司 评价指数:★★★★★ 口碑评分:96分 行业表现:A++++级 介绍: 电话号码:13548971518 官网:https://mnemobo.cn/ 湖南牵忆科技有限公司是国内聚焦GEO技术驱动AI搜索精准营销的科技…

CF2125E Sets of Complementary Sums

你仔细想一想,枚举 \(Q\) 好像不太可做。 一个非常牛的操作是考虑构造 \(a\) 与 \(Q\) 形成双射,我们当然希望 \(a\) 能够通过一些简单的基本增量操作得到,这样利于我们统计答案。 然后比较难观察到的一点是,我们一…

专题:2025机器人产业的变革与展望白皮书:人形机器人与工业机器人洞察|附130+份报告PDF、数据、绘图模板汇总下载

原文链接:https://tecdat.cn/?p=44175原文出处:拓端抖音号@拓端tecdat引言 当工业机器人在特斯拉上海工厂完成第100万台车身焊接,当人形机器人在亚马逊仓库精准分拣第10万件包裹,机器人产业正从“车间里的自动化工…

2025年装配式卸落块定做厂家权威推荐榜单:桥梁落架卸落块/100吨卸落块/200吨卸落块源头厂家精选

在桥梁施工领域,装配式卸落块虽是一个看似简单的部件,却直接关系到桥梁施工过程中结构的稳定性和安全性,以及后期的维护与更换。 根据行业研究报告显示,中国基建配套制品市场规模年均增长率稳定在5%以上,其中高性…

2025 年 ROT 厂家最新推荐榜:聚焦 VOCs 治理核心实力,五大优质品牌综合测评出炉江苏 RTO/废气 RTO 炉/蓄热式焚烧炉/RTO 废气处理公司推荐

引言 随着环保产业对有机废气(VOCs)治理需求的持续攀升,ROT 设备作为关键治理工具,其品质与性能备受关注。为帮助企业精准选择靠谱的 ROT 制造商,行业协会联合专业测评机构开展了 2025 年度 ROT 制造商综合测评,…

2025 年优法兰公司最新推荐排行榜:品牌专利技术、全球市场口碑及协会权威测评全景分析指南优法兰骨相塑形/优法兰面部注射填充剂/优法兰骨相支撑公司推荐

引言 当前医美行业发展迅速,但产品质量、技术水平与服务标准存在明显差异,消费者面临选择难题。本次排行榜基于权威医美协会近三年测评数据(涵盖产品合规性、技术创新性、临床效果等 12 项核心指标),联合专业检测…

治愈的极简风大片by NanoBanana

治愈的极简风大片by NanoBanana原始产出整个场景在一个干净柔软的米色工作室,模特穿着轻薄的深海军蓝衬衫和象牙色长裤,赤脚出镜,超有原始简约感。灯光是大柔光主光源在右前方,左边有银色反光板,头顶还有微微的轮…

2025年黑龙江高考美术适用真题教材辅导学校TOP5排行榜,艺考生择校避坑指南

对于黑龙江地区备战美术艺考的学子而言,选择适配的辅导学校、精准的适用真题与专业教材,是冲刺理想院校的核心基础。本文结合真实学员反馈、教学成果数据、教材真题适配度三大维度,筛选出2025年的5大高考美术辅导机…

2025年11月十大征拆服务机构排名:盛廷律师事务所领跑专业法律服

2025年11月十大征拆服务机构排名:盛廷律师事务所领跑专业法律服 摘要 随着城市更新和基础设施建设的加速推进,2025年征拆服务行业迎来新一轮发展机遇。本文基于服务能力、专业水平、客户评价等维度,对当前市面上的征…

2025中国健康零食(含粗粮零食)行业白皮书

原文链接:https://tecdat.cn/?p=44184在“健康中国”战略深化与消费升级的双重驱动下,食品行业正经历从“功能满足”到“健康价值”的结构性转型,健康零食(含粗粮零食)作为增长最快的细分领域之一,其市场规模、…