零基础入门:自动化测试脚本编写实战教程

从哪开始准备自动化测试环境

在动手写脚本之前,你得确保电脑上装好了两样东西:Python浏览器驱动
Python 是脚本的语言环境,浏览器驱动负责让脚本真的能点开网页、输入文字。

  • 安装 Python:去 python.org 下载最新版(推荐 3.8 以上),安装时勾上“Add Python to PATH”。装完后打开命令提示符(Win+R 输入 cmd),运行 python --version,看到版本号就说明装对了。
  • 安装 Selenium 库:在命令提示符里执行 pip install selenium。Selenium 是让 Python 操作浏览器的工具包。
  • 下载浏览器驱动:根据你用的浏览器(Chrome、Edge、Firefox)去官网下载对应的驱动程序。以 Chrome 为例,先看浏览器版本(设置→关于Chrome),然后去 chromedriver.chromium.org 下载匹配版本的驱动。把下载的 chromedriver.exe 放到一个固定文件夹(比如 C:\drivers),后面脚本里会指定路径。

写一个能自动登录论坛的测试脚本

我们写一个最简单的自动化测试脚本:用百度账号登录演示(实际请替换成自己的测试站点)。
新建一个文本文件,改名为 auto_login.py,用记事本或 VS Code 打开,输入以下内容:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# 指定驱动路径
driver = webdriver.Chrome(executable_path='C:\\drivers\\chromedriver.exe')

# 打开目标网站
driver.get('https://www.example.com/login')  # 替换成你的测试站点

# 输入用户名(假设输入框的id是username)
username_input = driver.find_element(By.ID, 'username')
username_input.send_keys('test_user')

# 输入密码
password_input = driver.find_element(By.ID, 'password')
password_input.send_keys('test_pass')

# 点击登录按钮(假设按钮id是loginBtn)
login_btn = driver.find_element(By.ID, 'loginBtn')
login_btn.click()

# 等待3秒,看结果
time.sleep(3)

# 断言登录成功:检查页面是否包含“退出”字样
assert '退出' in driver.page_source, '登录失败,未找到退出文字'
print('测试通过:登录成功')

# 关闭浏览器
driver.quit()

解释一下几个关键点:webdriver.Chrome() 会启动一个 Chrome 窗口;find_element 根据 ID 找到输入框;send_keys 输入内容;click 点击。
最后的 assert 是检查页面里有没有“退出”两个字,有就说明登录成功了。

运行脚本并检查效果

保存好脚本后,在命令提示符里切到脚本所在目录(比如 cd C:\scripts),然后运行:

python auto_login.py

你会看到浏览器自动打开、输入账号密码、点击登录。
如果一切顺利,命令行会输出“测试通过:登录成功”。
如果出现错误,先别慌,看下面的避坑指南。

编写自动化测试脚本时容易踩的坑

问题1:NoSuchElementException——脚本找不到页面元素。
最常见的原因是页面加载太慢,没等到元素出现就去找了。
解决方法是加等待:用 driver.implicitly_wait(10) 让查找元素前最多等10秒。
放在 driver.get() 前面。

问题2:驱动版本不匹配——Chrome浏览器自动更新后,旧的驱动会报错。
定期去官网下载新版驱动即可。

问题3:executable_path 被废弃——高版本 Selenium(4.x 以后)推荐直接用 webdriver.Chrome() 如果驱动已经放在 PATH 环境变量里。
简便做法是把 chromedriver.exe 放到 Python 安装目录下的 Scripts 文件夹,然后就不需要指定路径了。

问题4:AssertionError——断言失败。
比如页面没有出现“退出”二字。
这时可以用 print(driver.page_source) 打印页面源代码,看看实际有什么文字,然后调整断言条件。

让脚本更健壮:加报告和异常处理

真正的自动化测试脚本不能只靠控制台输出,通常要生成测试报告。
这里推荐 pytest + pytest-html。
先安装:

pip install pytest pytest-html

然后把测试代码改成 pytest 规范:把登录过程写成一个测试函数,文件名改为 test_login.py

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

class TestLogin:
    def test_login_success(self):
        driver = webdriver.Chrome()
        driver.get('https://www.example.com/login')
        driver.find_element(By.ID, 'username').send_keys('test_user')
        driver.find_element(By.ID, 'password').send_keys('test_pass')
        driver.find_element(By.ID, 'loginBtn').click()
        driver.implicitly_wait(3)
        assert '退出' in driver.page_source
        driver.quit()

运行命令:

pytest test_login.py --html=report.html

测试完成后当前目录会生成 report.html,用浏览器打开就能看到漂亮的测试报告,包括用例数量、失败信息等。

总结

你刚才跟着做的每一步,就是一个完整的自动化测试脚本编写实战流程。
从环境搭建到写第一个脚本,再到处理常见报错、生成测试报告。
以后遇到新项目,只需要改网站的 URL、元素定位方式和断言条件,就能快速复用。
别忘了每次修改后都手动跑一遍确认效果,建议先在测试环境而不是生产环境直接操作。

分享到:
上一篇
工业互联网服务器安全配置新手实操,从零锁紧生产环境
下一篇
接口测试Postman进阶用法:环境变量、预脚本与断言实战
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意