
刚接触自动化测试,听人说要写脚本、搭环境,却不知道先做啥后做啥?担心流程走错了,白忙活半天还出不来结果?别慌,今天云哥就把自动化测试的完整流程拆成几步,一步步讲清楚,就算是新手也能跟着走,一起往下看吧!
首先跟大家说,自动化测试不像手工测试 “随便点点”,它有固定流程,我先做个表格,把流程步骤、核心任务和常用工具列出来,大家先有个整体印象:
| 自动化测试步骤 | 核心任务 | 常用工具 | 新手易踩的坑 |
|---|
| 测试需求分析与选型 | 确定哪些功能适合自动化,选合适的工具 | - | 把不适合的功能(如频繁变更的功能)选成自动化对象 |
| 环境搭建 | 配置测试环境、安装工具和依赖 | Selenium、JDK、Python | 环境版本不兼容,导致工具用不了 |
| 测试用例设计 | 编写适合自动化的用例(需明确输入输出) | Excel、TestRail | 把手工用例直接搬来用,没考虑自动化执行逻辑 |
| 脚本开发 | 按用例写自动化脚本,实现自动操作 | Selenium、Appium、Python | 脚本没加注释,后期维护看不懂 |
| 脚本执行与结果分析 | 运行脚本,查看是否通过,分析失败原因 | Jenkins、Allure | 只看结果不分析失败原因,错过隐藏问题 |
| 脚本维护与优化 | 功能变更后更新脚本,优化执行速度 | - | 功能变了不更脚本,导致后续执行全失败 |
一、第一步:测试需求分析与选型 —— 先搞懂 “啥能自动化,用啥工具”
很多新手一上来就搭环境、写脚本,结果做一半发现选的功能根本不适合自动化,白忙活一场。这一步要做 2 件关键事:
- 筛选适合自动化的功能
不是所有功能都适合自动化,得满足 “需求稳定、高频执行、输入输出明确” 这 3 个条件。比如电商 APP 的 “登录功能”,需求稳定(不会频繁改登录规则)、每天要测很多次、输入账号密码就能出结果,就适合自动化;而 “首页轮播图文案” 这种经常变的功能,就不适合。 - 选合适的自动化工具
不同场景选不同工具,比如:
- 测 Web 端(比如网页版淘宝):用 Selenium,支持 Python、Java 等语言,新手学 Python 版更容易;
- 测 APP(比如手机抖音):用 Appium,能测安卓和 iOS,兼容性好;
- 测接口(比如微信支付接口):用 Postman 或 JMeter,操作简单易上手。
有人会问,新手选啥工具好?建议从 Selenium+Python 开始,资料多、社区活跃,遇到问题容易找到答案。博主经常使用这个组合,新手跟着学,1-2 周就能入门。
二、第二步:环境搭建 —— 别被 “配置” 吓住,按步骤来很简单
环境搭建是新手最容易卡壳的一步,但按步骤来其实不难,以 “Selenium+Python” 为例,具体步骤:
- 安装 Python:去 Python 官网下载最新版本,安装时勾选 “Add Python to PATH”(不然后续找不到 Python),一路点下一步就行。安装完打开命令提示符,输入 “python --version”,能显示版本号就说明装好了。
- 安装 Selenium 库:打开命令提示符,输入 “pip install selenium”,等待安装完成。要是提示 “pip 不是内部命令”,就是没勾选 “Add Python to PATH”,得重新装 Python 并勾选。
- 下载浏览器驱动:比如用 Chrome 浏览器,要下载和浏览器版本对应的 ChromeDriver,放在 Python 安装目录下。比如 Chrome 是 120 版本,就下 120 对应的 ChromeDriver,版本对不上会报错。
之前有个新手没下对驱动版本,折腾了 2 小时才解决,所以大家一定要注意 “工具版本和浏览器版本匹配”。
三、第三步:测试用例设计 —— 别直接搬手工用例,得 “适配自动化”
自动化用例和手工用例不一样,手工用例可以写 “点击登录按钮,看是否登录成功”,但自动化用例得写清楚 “输入什么账号密码,预期返回什么结果”,具体要做:
- 明确输入输出和预期结果
比如 “登录功能” 的自动化用例,要写 “输入正确账号(13800138000)、正确密码(123456),预期跳转至首页,显示用户名‘测试账号’”;输入错误密码时,预期弹出 “密码错误” 提示。 - 避免模糊描述
手工用例里的 “点击右上角按钮” 这种模糊描述,自动化用例里要改成 “点击 id 为‘loginBtn’的按钮”(得从网页源码里找按钮的 id),不然脚本找不到元素,执行不了。
四、第四步:脚本开发 —— 写脚本不是 “写代码”,按用例拼步骤
新手别怕 “写脚本”,其实就是把手工操作翻译成代码,以 “Selenium 测 Web 登录” 为例,简单脚本示例:
python
# 导入Selenium库from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time# 打开Chrome浏览器driver = webdriver.Chrome()# 打开登录页面driver.get("https://www.test.com/login")# 输入账号driver.find_element(By.ID, "username").send_keys("13800138000")# 输入密码driver.find_element(By.ID, "password").send_keys("123456")# 点击登录按钮driver.find_element(By.ID, "loginBtn").click()# 等待2秒,让页面加载time.sleep(2)# 验证是否登录成功(看是否显示用户名)if driver.find_element(By.ID, "userName").text == "测试账号":print("登录成功,用例通过")else:print("登录失败,用例不通过")# 关闭浏览器driver.quit()
写脚本时要注意加注释(比如 “# 输入账号”),不然过段时间自己都看不懂;还要加等待时间(比如 time.sleep (2)),避免页面没加载完,脚本就执行下一步,导致失败。
五、第五步:脚本执行与结果分析 —— 别只看 “通过 / 失败”,要找原因
脚本写好后,就可以执行了,具体要做:
- 执行脚本:用 Python 运行脚本,比如在 PyCharm 里点 “运行” 按钮,或者在命令提示符里输入 “python login_test.py”。
- 查看结果:要是显示 “登录成功,用例通过”,就说明脚本执行正常;要是失败,比如提示 “找不到元素 id 为‘loginBtn’”,就得分析原因 —— 可能是按钮 id 变了,也可能是页面加载慢没找到。
- 定位失败原因:用浏览器 “F12” 查看网页源码,确认按钮 id 是不是变了;要是没找到元素,就加更长的等待时间,比如把 time.sleep (2) 改成 time.sleep (5)。
六、第六步:脚本维护与优化 —— 功能变了,脚本也得变
自动化脚本不是写一次就完事了,产品功能变更后,脚本也得更新:
- 更新脚本:比如登录按钮 id 从 “loginBtn” 改成 “submitBtn”,就得把脚本里的 “loginBtn” 全改成 “submitBtn”。
- 优化脚本:把重复的代码写成函数,比如 “输入账号密码” 的代码,写成函数后,其他用例能直接调用,不用重复写。比如:
python
# 定义输入账号密码的函数def input_user_info(driver, username, password):driver.find_element(By.ID, "username").send_keys(username)driver.find_element(By.ID, "password").send_keys(password)
这样其他用例要输入账号密码,调用这个函数就行,能省很多时间。
常见问题:新手执行脚本总失败,咋办?
- 问:提示 “浏览器驱动版本不匹配”,怎么解决?
答:先看浏览器版本(比如 Chrome 右上角 “设置→关于 Chrome”),再去对应驱动官网下载匹配的版本,替换旧驱动就行。 - 问:脚本执行时元素总找不到,为啥?
答:大概率是页面没加载完,脚本就执行了,加 “显式等待”(比 time.sleep 更灵活),比如:pythonfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC# 等待10秒,直到登录按钮出现WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "loginBtn")))
最后跟大家说点个人心得,自动化测试流程看着多,但核心是 “先选对功能和工具,再按步骤写脚本、执行、维护”。新手别一开始就追求复杂脚本,从简单功能(比如登录、搜索)练起,熟悉流程后再学复杂场景。我刚开始学的时候,也是从登录脚本写起,慢慢才掌握整个流程的,所以别着急,一步步来就能做好。希望这些内容能帮到你,祝你早日掌握自动化测试流程!
暂无评论