Robot Framework自动化测试环境搭建:从Python安装到实战项目

📅 2026/7/21 3:14:09 👁️ 阅读次数 📝 编程学习
Robot Framework自动化测试环境搭建:从Python安装到实战项目

1. 项目概述:为什么选择Robot Framework作为自动化测试的起点?

如果你正在寻找一个能快速上手、功能强大且社区活跃的自动化测试框架,Robot Framework(后文简称RF)绝对是一个绕不开的名字。我接触过不少测试框架,从早期的QTP到后来的Selenium、Appium,再到各种基于代码的测试库,最终在团队协作和快速交付的项目中,RF以其独特的“关键字驱动”和“表格化”语法,成为了我们团队的首选。它最大的魅力在于,即使是没有深厚编程背景的测试人员,也能在短时间内编写出结构清晰、可读性极强的自动化测试用例。这对于希望快速建立自动化能力、降低团队学习成本的团队来说,是一个巨大的福音。

很多人一听到“自动化测试”就觉得门槛很高,需要精通Python或Java。但RF的设计哲学恰恰相反:它试图用自然语言和简单的表格来封装复杂的底层操作。你可以把它想象成一个“乐高积木”系统。框架本身提供了基础的结构和连接件(测试库),而各种“积木块”(关键字)则由丰富的第三方库(如SeleniumLibrary用于Web测试,AppiumLibrary用于移动端测试,RequestsLibrary用于接口测试)提供。你的工作就是按照测试逻辑,把这些“积木”搭建成完整的测试用例。这种低代码甚至无代码的特性,使得业务测试人员能够更专注于测试场景本身,而不是陷入繁琐的代码调试中。

本指南的目标,就是带你从零开始,完成一套能在Windows系统上顺畅运行RF及其核心生态的完整环境搭建。我们会涵盖从Python环境、RF核心框架、到最常用的Web和接口测试库的安装,并解决安装过程中90%你会遇到的“坑”。无论你是刚入行的测试新人,还是希望为团队引入新工具的资深工程师,这篇手把手的指南都能让你在半小时内,拥有一个功能完备的RF工作台。

2. 环境准备与核心组件解析

在动手安装之前,我们需要理解RF的生态系统构成。它不是一个单一的工具,而是一个以Python为运行时的“框架套件”。理解各个组件的作用,能帮助你在安装和后续问题排查时更加得心应手。

2.1 核心组件依赖关系图

整个RF生态可以看作一个三层结构:

  1. 运行时层(基石):Python。RF本身是用Python编写的,所有库和脚本最终都需要Python解释器来执行。因此,一个正确安装且环境变量配置无误的Python是一切的前提。
  2. 框架层(核心):Robot Framework。这是测试执行引擎和语法解析器。它负责读取你用RF语法编写的测试用例文件(.robot),解析其中的关键字,并调用对应的测试库来执行操作。
  3. 工具库层(能力扩展):各种测试库和工具。这是RF强大功能的来源。
    • 测试库:提供具体操作的关键字。例如:
      • SeleniumLibrary:提供操作浏览器(如打开网页、点击、输入文本)的关键字。
      • RequestsLibrary:提供发送HTTP请求(GET, POST等)的关键字,用于接口测试。
      • AppiumLibrary:提供操作手机App的关键字。
    • 工具:提升编写和运行体验。
      • robotframework-ride:一个古老的图形化编辑工具,目前官方已不再维护,不推荐新手使用,容易踩坑。
      • RobotFramework-LSP:用于VS Code等现代编辑器的语言服务器,提供语法高亮、关键字补全等,是当前的主流选择。

2.2 Python环境安装:避坑第一步

Python是RF的命脉,安装不当会导致后续所有步骤失败。对于Windows用户,我强烈建议直接从官网(python.org)下载安装包,并遵循以下要点:

版本选择:RF官方支持Python 3.6及以上版本。为了避免某些第三方库的兼容性问题,我建议选择Python 3.8或3.9这类“长期支持”的中间版本。比如Python 3.11或3.12虽然新,但偶尔会有某个库还没跟上,导致安装失败。Python 3.8是一个经过大量项目验证的稳定选择。

安装操作

  1. 运行下载的安装程序(例如python-3.8.10-amd64.exe)。
  2. 在安装向导的第一个页面,务必勾选最下方的 “Add Python 3.8 to PATH”。这是最关键的一步!勾选后,安装程序会自动将Python和它的包管理工具pip添加到系统环境变量,让你可以在任何命令行窗口直接使用pythonpip命令。如果不勾选,你需要手动配置环境变量,对新手来说非常麻烦且容易出错。
  3. 点击“Install Now”进行安装。建议使用默认的安装路径(通常是C:\Users\[你的用户名]\AppData\Local\Programs\Python\Python38),避免路径中包含中文或空格。

验证安装:安装完成后,打开“命令提示符”(CMD)或“Windows PowerShell”。输入以下命令并回车:

python --version

如果正确显示Python 3.8.10(或你安装的版本号),说明Python安装成功且环境变量配置正确。接着输入:

pip --version

应显示pip的版本信息。如果这两个命令任何一个报错“不是内部或外部命令”,说明环境变量未生效,需要回到安装步骤检查,或手动添加Python安装目录和其下的Scripts目录到系统PATH变量中。

注意:有些教程会推荐使用Anaconda等科学计算发行版。对于纯自动化测试环境,我建议使用官方Python。Anaconda自带的大量科学计算库可能与测试库产生不必要的依赖冲突,且环境更臃肿。保持环境纯净是减少问题的好习惯。

3. 核心框架与必备库安装实战

当Python环境就绪后,我们就可以通过Python的包管理工具pip来安装RF及其生态了。整个过程在命令行中完成,非常高效。

3.1 安装Robot Framework核心

打开命令行(CMD或PowerShell),输入以下命令:

pip install robotframework

这个命令会从Python官方的软件仓库(PyPI)下载并安装最新稳定版的Robot Framework。pip会自动处理依赖关系。安装成功后,你可以通过以下命令验证:

robot --version

如果显示RF的版本号(如Robot Framework 6.1.1),恭喜你,核心框架安装成功。

实操心得:在国内网络环境下,直接使用pip从PyPI下载可能会非常慢甚至超时。解决方法是使用国内的镜像源。你可以在安装命令后加上-i参数指定镜像源。例如,使用清华大学的镜像:

pip install robotframework -i https://pypi.tuna.tsinghua.edu.cn/simple

常用的镜像源还有阿里云(https://mirrors.aliyun.com/pypi/simple/)等。为了永久生效,你可以在用户目录下(C:\Users\[你的用户名]\)创建一个名为pip的文件夹,在里面新建一个文件pip.ini,写入以下内容:

[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host = pypi.tuna.tsinghua.edu.cn

这样以后所有pip install命令都会默认使用清华镜像,速度会快很多。

3.2 安装Web自动化测试库:SeleniumLibrary

SeleniumLibrary是RF中进行Web自动化测试的“瑞士军刀”,它封装了Selenium WebDriver的所有常用功能。安装它需要两步:先安装库本身,再安装对应的浏览器驱动。

第一步:安装库

pip install robotframework-seleniumlibrary

第二步:安装浏览器驱动(以Chrome为例)这是新手最容易出错的地方。SeleniumLibrary需要通过一个叫chromedriver的小程序来实际控制Chrome浏览器。这个驱动程序的版本必须与你的Chrome浏览器版本严格匹配。

  1. 查看你的Chrome浏览器版本:打开Chrome,点击右上角三个点 -> 帮助 -> 关于Google Chrome。
  2. 访问ChromeDriver的官方下载站或国内镜像站。根据你的Chrome主版本号(例如 114.0.5735.90 的主版本是114),下载对应的ChromeDriver。务必下载与你的Chrome主版本号完全一致的驱动。如果版本不匹配,运行时可能会报错“This version of ChromeDriver only supports Chrome version XX”。
  3. 下载的是一个名为chromedriver.exe的压缩包,解压后得到chromedriver.exe文件。
  4. 将这个chromedriver.exe文件放置在一个系统能够找到的目录。有三种推荐做法:
    • 方法A(推荐):直接放到Python的安装目录下的Scripts文件夹里(例如C:\Users\[你的用户名]\AppData\Local\Programs\Python\Python38\Scripts)。因为这个目录已经在系统的PATH环境变量里了,RF运行时能自动找到。
    • 方法B:放到你的项目目录下,然后在RF脚本中,使用Open Browser关键字时,通过executable_path参数指定它的完整路径。这种方式更利于项目环境隔离。
    • 方法C:将其所在目录添加到系统的PATH环境变量中。

验证安装:你可以创建一个最简单的.robot文件来测试。用记事本新建一个test.robot文件,写入:

*** Settings *** Library SeleniumLibrary *** Test Cases *** 打开浏览器示例 Open Browser https://www.baidu.com chrome Sleep 3s Close Browser

然后在命令行中,进入该文件所在目录,执行robot test.robot。如果能看到Chrome浏览器自动打开并访问百度,停留3秒后关闭,说明SeleniumLibrary和环境配置成功。

3.3 安装接口自动化测试库:RequestsLibrary

对于API或接口测试,RequestsLibrary是RF中的不二之选,它基于强大的Pythonrequests库。

pip install robotframework-requests

这个库安装相对简单,因为它不涉及外部驱动。安装后,你就可以在RF脚本中使用GETPOSTResponse Status Should Be等关键字来构造和验证HTTP请求了。

3.4 安装IDE支持:VS Code与RobotFramework-LSP

工欲善其事,必先利其器。虽然可以用任何文本编辑器编写.robot文件,但一个好的IDE能极大提升效率。VS Code + RobotFramework-LSP插件是目前最主流、体验最好的组合。

  1. 安装VS Code:从官网下载安装即可。
  2. 安装插件:打开VS Code,进入扩展市场(Ctrl+Shift+X),搜索Robot Framework Language Server并安装。
  3. 配置(可选但重要):安装插件后,通常开箱即用。但如果你的RF或库安装在某个虚拟环境(venv)中,可能需要配置插件指向正确的Python解释器。按Ctrl+Shift+P,输入 “Python: Select Interpreter”,选择你安装了RF的那个Python环境。

安装完成后,当你打开一个.robot文件时,你会获得语法高亮、关键字自动补全(输入关键字的一部分按Tab键)、关键字定义跳转、悬浮查看文档等强大功能,编写效率倍增。

4. 完整环境验证与第一个脚本

环境装好了,我们来跑一个集成了Web和接口测试的“组合拳”脚本,验证整个环境是否工作正常。这个脚本模拟一个经典场景:先通过接口获取一些数据(例如一个待办事项列表),然后打开Web页面,验证页面上的内容与接口返回的数据是否一致。

4.1 创建第一个测试套件

新建一个文件,命名为first_suite.robot。我们将分部分来构建它。

第一部分:Settings设置表

*** Settings *** Documentation 一个完整的RF环境验证套件,结合了接口和Web测试。 Library SeleniumLibrary Library RequestsLibrary Suite Setup 初始化测试数据 Suite Teardown 关闭所有浏览器
  • Documentation:给测试套件添加描述。
  • Library:导入我们需要的测试库。
  • Suite Setup:在整个测试套件开始前执行的关键字,这里我们调用一个自定义的初始化测试数据关键字(后面会定义)。
  • Suite Teardown:在整个测试套件结束后执行的关键字,确保关闭所有打开的浏览器,清理环境。

第二部分:Variables变量表

*** Variables *** ${API_BASE_URL} https://jsonplaceholder.typicode.com # 一个免费的测试API网站 ${WEB_URL} https://the-internet.herokuapp.com # 一个经典的Web测试演示网站 ${BROWSER} chrome

这里定义了一些常量,好处是如果需要修改(比如换浏览器或测试地址),只需改这一个地方,所有用到的地方都会生效,便于维护。

第三部分:Test Cases测试用例表

*** Test Cases *** 验证接口服务可用性 [Documentation] 测试目标API是否能够正常响应 Create Session jsonplaceholder ${API_BASE_URL} ${response}= GET On Session jsonplaceholder /todos/1 Should Be Equal As Strings ${response.status_code} 200 Log 接口响应状态码:${response.status_code}, 响应体:${response.text} 验证Web页面标题 [Documentation] 打开一个示例网页,验证其标题是否正确 Open Browser ${WEB_URL}/dynamic_loading ${BROWSER} Wait Until Page Contains Element css:div#start button ${title}= Get Title Should Contain ${title} Dynamic Loading Close Browser
  • 第一个用例:使用RequestsLibrary。Create Session创建一个到基础地址的会话。GET On Session发送一个GET请求到/todos/1路径。Should Be Equal As Strings断言响应状态码是200。Log关键字将信息输出到日志和报告,便于调试。
  • 第二个用例:使用SeleniumLibrary。打开一个动态加载的示例页面,等待页面上的一个按钮元素出现,然后获取页面标题并断言其包含特定文本。

第四部分:Keywords关键字表(自定义关键字)

*** Keywords *** 初始化测试数据 Log 测试套件开始,初始化工作完成。 Set Suite Variable ${global_todo_id} 1 # 设置一个套件级变量,可供所有用例使用 关闭所有浏览器 Close All Browsers

这里定义了两个自定义关键字。初始化测试数据在套件开始时被调用,可以在这里做一些准备工作,比如读取配置文件、连接数据库等,这里我们简单设置一个变量。关闭所有浏览器确保所有测试结束后浏览器被清理。

4.2 执行测试并查看报告

将上述所有代码块合并保存到first_suite.robot文件中。打开命令行,导航到该文件所在目录,执行命令:

robot first_suite.robot

RF会开始执行,并在控制台输出执行日志。执行完毕后,你会在当前目录下看到三个新生成的文件:

  • log.html:最详细的执行日志,以HTML格式呈现,包含每个关键字的执行状态、参数、返回值和耗时,是排查问题的主要依据。
  • report.html:测试报告,汇总了测试套件和测试用例的通过/失败状态、统计信息,更宏观。
  • output.xml:机器可读的XML格式输出,可用于与其他系统集成。

用浏览器打开report.html,你就能看到一个清晰、美观的测试报告,清晰地展示了两个测试用例的执行结果。如果一切顺利,两个用例都应该显示为绿色(PASS)。

5. 安装过程中的典型问题与解决方案

即使按照指南操作,你也可能会遇到一些问题。下面是我在帮助团队搭建环境时,遇到最高频的几个“坑”及其解决方案。

5.1 Python与pip环境问题

问题1:pip install命令报错,提示“不是内部或外部命令”或“pip版本过低”。

  • 原因:Python安装时未勾选“Add to PATH”,或者安装后未重启命令行终端。
  • 解决
    1. 手动添加Python及其Scripts目录到系统PATH。
      • 右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量。
      • 在“系统变量”或“用户变量”中找到Path变量,点击编辑。
      • 新建两条,分别添加你的Python安装目录(如C:\Users\YourName\AppData\Local\Programs\Python\Python38)和Scripts目录(如C:\Users\YourName\AppData\Local\Programs\Python\Python38\Scripts)。
    2. 保存后,重新打开一个新的命令行窗口,再尝试pip --version

问题2:使用pip install时速度极慢或超时。

  • 原因:网络连接PyPI服务器不稳定。
  • 解决:如前所述,使用国内镜像源。临时使用:pip install package_name -i https://mirrors.aliyun.com/pypi/simple/。永久配置:创建pip.ini文件。

5.2 浏览器驱动问题

问题3:运行Web测试时,报错“WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH”。

  • 原因:系统找不到chromedriver.exe
  • 解决
    1. 确认你下载的ChromeDriver版本与Chrome浏览器主版本号一致。
    2. 确认chromedriver.exe文件已放在Python的Scripts目录下,或者其路径已添加到系统PATH。
    3. 如果放在其他位置,必须在Open Browser关键字中通过executable_path参数指定绝对路径,例如:
      Open Browser https://www.example.com chrome executable_path=C:\MyDrivers\chromedriver.exe

问题4:浏览器能打开,但马上闪退,报错“This version of ChromeDriver only supports Chrome version XX”。

  • 原因:Chrome浏览器自动更新了,导致驱动版本不匹配。这是最常见的问题。
  • 解决
    1. 检查当前Chrome版本。
    2. 去ChromeDriver官网下载与之匹配的新版本驱动。
    3. 替换掉旧的chromedriver.exe文件。
    • 进阶技巧:可以使用webdriver-manager这个Python包自动管理驱动。先安装:pip install webdriver-manager,然后在RF脚本中结合Python代码使用,它能自动检测浏览器版本并下载匹配的驱动。但这需要一些额外的脚本编写。

5.3 库导入与依赖冲突

问题5:在RF脚本中导入SeleniumLibraryRequestsLibrary时,日志报错“Importing library ‘XXX’ failed”。

  • 原因:通常是因为库没有正确安装,或者安装在某个Python虚拟环境(venv)中,但当前运行的RF环境不是那个虚拟环境。
  • 解决
    1. 确认安装命令是否成功执行。可以尝试重新安装:pip install --upgrade robotframework-seleniumlibrary
    2. 检查Python环境。在命令行中,分别运行where pythonwhere robot,查看它们指向的路径是否在同一个Python安装目录下。如果不是,说明环境混乱了。
    3. 最干净的做法是:使用虚拟环境。在项目目录下,执行python -m venv venv创建一个虚拟环境,然后激活它(Windows下执行venv\Scripts\activate)。在这个被激活的虚拟环境命令行中,重新安装RF和所有需要的库。这样可以保证项目依赖的独立性。

问题6:运行测试时,出现奇怪的Python模块错误,比如提示某个模块找不到。

  • 原因:某个测试库的底层依赖(如requests,urllib3,selenium)版本与其他库冲突。
  • 解决:使用pip检查并升级冲突的包。例如,如果selenium版本过低,可以pip install --upgrade selenium。更系统的做法是使用requirements.txt文件来固定所有依赖的版本。你可以通过pip freeze > requirements.txt生成当前环境的依赖列表,在新环境中通过pip install -r requirements.txt来一键安装所有指定版本的包,确保环境一致。

5.4 VS Code插件问题

问题7:VS Code中RF插件没有代码补全或语法高亮。

  • 原因
    1. 文件后缀不是.robot
    2. 插件未正确加载或指向了错误的Python环境。
  • 解决
    1. 确保文件后缀正确。
    2. 检查VS Code右下角的状态栏,看它是否识别为“Robot Framework”。如果没有,可以尝试点击右下角的选择语言模式,手动选择“Robot Framework”。
    3. Ctrl+Shift+P,运行命令 “Robot Framework: Start Language Server”,手动启动语言服务器。
    4. 确认Python解释器选择正确(见3.4节)。

6. 从安装到实战:构建你的第一个自动化测试项目

环境搭建只是第一步,如何组织代码和资源,才是决定自动化项目能否长期维护的关键。这里分享一个我常用的、简单清晰的项目目录结构,适合中小型项目起步。

my_robot_project/ # 项目根目录 ├── testsuites/ # 存放测试套件文件(.robot) │ ├── web/ # Web相关测试用例 │ │ ├── login_tests.robot │ │ └── search_tests.robot │ └── api/ # API相关测试用例 │ └── user_api_tests.robot ├── resources/ # 资源文件目录 │ ├── common_keywords.robot # 公共自定义关键字 │ ├── page_objects/ # 页面对象模型(可选) │ │ └── login_page.robot │ ├── variables.py # 或 .yaml/.json, 存放全局变量 │ └── locators.py # 存放Web元素定位符 ├── data/ # 测试数据文件 │ └── test_users.csv ├── results/ # 测试输出目录(应在.gitignore中忽略) │ ├── log.html │ ├── report.html │ └── output.xml ├── libs/ # 自定义Python库(如果需要) │ └── my_helper.py ├── requirements.txt # Python依赖包列表 └── run_tests.bat # Windows批处理文件,一键执行测试

关键文件说明

  1. common_keywords.robot:这是提升脚本复用性和可维护性的核心。把多个测试用例中都会用到的操作(比如“登录系统”、“读取测试数据”、“清理测试环境”)抽象成自定义关键字放在这里。然后在测试套件中通过Resource ../resources/common_keywords.robot来引入。
  2. variables.py:使用Python文件来管理变量非常灵活。你可以根据不同的环境(测试、预生产、生产)定义不同的URL、账号密码等。
    # variables.py ENV = 'test' if ENV == 'test': BASE_URL = 'https://test.example.com' USERNAME = 'test_user' PASSWORD = 'test_pass' elif ENV == 'prod': BASE_URL = 'https://example.com' USERNAME = 'prod_user' PASSWORD = 'prod_pass'
    在RF脚本中,通过Variables ../resources/variables.py来导入,然后就可以直接使用${BASE_URL}这样的变量了。
  3. run_tests.bat:一个简单的批处理文件,可以标准化执行命令,方便团队成员或CI/CD工具调用。
    @echo off robot --outputdir results --variable ENV:test testsuites/ pause
    这个命令会执行testsuites/目录下的所有测试,将输出结果(log, report)放到results/目录下,并传入变量ENV的值为test

实操心得:不要把所有测试用例都堆在一个巨大的.robot文件里。按照功能模块(如登录、订单、支付)或测试类型(如API、Web UI)分拆到不同的文件中。这样结构清晰,也便于单独执行某个模块的测试(例如robot testsuites/web/login_tests.robot)。另外,善用RF的Tag功能给测试用例打标签,可以灵活地选择执行带有特定标签的用例集(如robot --include smoke testsuites/只执行冒烟测试)。

7. 进阶配置与持续集成初探

当你的RF脚本越来越多,就需要考虑如何更高效、更稳定地运行它们,这就是持续集成(CI)的用武之地。这里以最流行的Jenkins为例,简要说明如何将RF测试集成到CI流水线中。

核心思路:CI服务器(如Jenkins)在每次代码提交后,自动拉取最新的测试脚本,在一个干净的环境中执行robot命令,然后收集并发布测试报告。

在Jenkins中的关键配置步骤

  1. 安装必要插件:确保安装了Robot Framework plugin插件。这个插件能解析output.xml文件,并在Jenkins job页面上生成趋势图和报告链接,体验非常好。
  2. 创建自由风格项目
    • 源码管理:配置Git,指向存放你RF脚本的代码仓库。
    • 构建触发器:设置轮询SCM或Webhook,实现代码提交后自动触发测试。
    • 构建环境:勾选“Provide Node & npm bin/ folder to PATH”通常不需要,除非你的测试涉及Node.js。更关键的是确保Jenkins服务器上安装了正确版本的Python和RF。
      • 最佳实践:在Jenkins的构建步骤中,使用虚拟环境。可以添加一个“Execute Windows batch command”或“Execute shell”步骤,内容类似于:
      # Linux Shell示例 python -m venv venv source venv/bin/activate pip install -r requirements.txt
    • 构建步骤:添加一个“Execute Windows batch command”或“Execute shell”步骤,执行测试命令。
      robot --outputdir ${WORKSPACE}/results --variable ENV:ci testsuites/
      这里${WORKSPACE}是Jenkins的内置变量,代表job的工作目录。
    • 后置操作
      • 添加“Publish Robot Framework test results”,在“Output XML”栏位填写results/output.xml。这样插件就会处理结果。
      • 添加“Archive the artifacts”,归档results/*.html等报告文件,以便在Jenkins界面直接下载查看。
  3. 查看结果:构建完成后,在Job页面你会看到Robot Framework的测试结果趋势图,点击可以链接到详细的HTML报告。

踩坑提醒:在CI环境中,Web测试(尤其是UI自动化)非常脆弱且耗时。常见的失败原因包括:页面加载超时、元素定位因前端微调而失效、测试环境不稳定等。因此,在CI中运行UI自动化测试时,务必:

  • 增加等待策略:多使用Wait Until Page Contains ElementWait Until Element Is Visible等关键字,而不是简单的Sleep
  • 设置合理的超时时间:通过Set Selenium Timeout全局调整等待时间。
  • 使用无头模式(Headless):在CI服务器这种没有图形界面的环境中运行Chrome,需要添加无头模式选项。
    Open Browser ${URL} chrome options=add_argument("--headless");add_argument("--disable-gpu")
  • 做好失败重试机制:对于不稳定的测试,可以考虑在套件或用例级别使用RF的--rerunfailed选项,或者借助pabot(并行执行库)的重试功能。

环境搭建是自动化测试长征的第一步,也是最容易让人放弃的一步。希望这篇超过5000字的详细指南,能帮你扫清从零到一的障碍。记住,遇到问题多查看官方文档和社区,RF活跃的社区是它最大的优势之一。当你成功运行起第一个脚本,看到自动打开的浏览器和生成的精美报告时,那种成就感会驱动你继续探索这个强大工具的更多可能。接下来,你可以深入研究如何设计更健壮的关键字、如何管理测试数据、如何集成到更复杂的DevOps流程中。自动化测试的世界,才刚刚向你打开大门。