Cypress UI自动化测试框架学习(1)- 入门

本文介绍了Cypress自动化测试框架的基本使用,包括环境准备、步骤说明和实战案例,带你快速入门并编写首个测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cypress UI自动化测试框架学习(1)- 入门

Introduction

基于 JavaScript 的前端自动化测试工具,可以对浏览器中运行的任何内容进行快速、简单、可靠的测试

Cypress 是自集成的,提供了一套完整的端到端测试,无须借助其他外部工具,安装后即可快速地创建、编写、运行测试用例,且对每一步操作都支持回看

不同于其他只能测试 UI 层的前端测试工具,Cypress 允许编写所有类型的测试,覆盖了测试金字塔模型的所有测试类型【界面测试,集成测试,单元测试】

Cypress官网:https://www.cypress.io/

Getting Started

下面以MacOS来进行介绍,其他系统可参考官网信息

Operating System

  • macOS 10.9 and above (64-bit only)
  • Node.js 12 or 14 and above

Before Started

  • 已安装好node.js和npm

  • 已安装好vs code或者其他代码编辑器

Started and Run

  • Step1:通过npm新建项目
# 新建项目文件夹
$ mkdir cypress-demo
# 进入项目文件夹
$ cd cypress-demo
# npm项目环境准备
$ npm init
  • Step2:安装cypress
# 项目安装cypress包
$ npm install cypress --save-dev
  • Step3:运行cypress程序

若提示:npm ERR! missing script: cypress:open,可在项目根目录package.json文件的scripts下新增"cypress:open": “cypress open”,保存后再次运行命令即可

# 启动demo
$ npm run cypress:open

Started Screenshot

  • 运行截图

  • demo用例执行截图

Try First Testscript

Testcase

1.访问光谷社区主页http://www.guanggoo.com/
2.验证是否正确跳转到光谷社区页面
3.验证网页标题是否正确
4.点击登录按钮,验证正确跳转到登录页面
5.在登录页面输入用户名和输入密码
6.点击登录按钮,验证登录成功

Testscript

  • 在项目cypress/integration下新建demo文件夹

  • 在demo文件夹下新建demo-guanggoo.js

  • demo-guanggoo.js编写测试脚本

脚本中账号密码需换成自己的账号密码

describe('first testcase for cypress',function(){
    it('visit guanggoo homepage and login for guanggoo:',function(){

        // 访问并登录光谷社区
        cy.visit('http://www.guanggoo.com/') //访问url
        cy.url().should('include','www.guanggoo.com')     //验证目标url 是否正确包含光谷社区正确域名 验证是否正确跳转到光谷社区页面
        cy.title().should('contain','光谷社区')  //验证页面 title 是否正确
        cy.get(':nth-child(1) > .nav-collapse').click()   //点击登录按钮
        cy.url().should('include','login')  //验证正确跳转到登录页面
        cy.get('#email') //根据 css 定位用户名输入框
        .type('dengnao.123@163.com')        //输入用户名
        cy.get('#password') //根据 css 定位密码输入框
        .type('xxxxxxx')        //输入密码
        cy.get('.btn-success').click()   //点击登录按钮

    })
})

Run Screenshot

  • 运行cypress程序
# 启动
$ npm run cypress:open

  • 页面上选择点击运行demo-guanggoo.js即可

  • 运行通过无报错,代表用例编写成功
<think>好的,我现在需要帮用户寻找关于UI自动化测试的资源,包括网站、工具、框架和教程。根据用户提供的四个引用,我需要先仔细分析每个引用的内容,看看里面提到了哪些关键点,然后结合自己的知识补充相关信息。 首先,引用[1]提到了pytest框架用于UI自动化测试中的用例收集、执行、标记和参数化。这说明pytest在Python生态中是一个重要的工具,可能和Selenium结合使用。用户可能需要Python相关的资源,所以应该推荐Selenium和pytest的组合,以及相关教程。 引用[2]讨论的是基于Java的技术栈,包括Selenium、TestNG、Maven和Ant。用户如果有Java背景,可能需要这方面的框架搭建教程。这里提到的文档可能是一个具体的博客或文章,需要看看是否有公开的教程链接,但用户没有提供,所以可能需要建议用户搜索这些关键词找到相关资源。 引用[3]提到了UiObject,链接是wear.techbrood.com,看起来是关于Android UI自动化测试的,可能属于UIAutomator框架的一部分。因此,对于移动端UI测试,特别是Android,UIAutomator是一个重要工具,需要包括在推荐中。 引用[4]介绍了Python Selenium框架与Jenkins持续集成的结合,强调持续集成在自动化测试中的重要性。这里需要推荐Jenkins的使用教程,以及如何将UI自动化测试集成到CI/CD流程中。 接下来,我需要考虑用户的需求是寻找资源或教程,可能需要分门别类,比如工具、框架、教程网站、持续集成等。同时要覆盖不同编程语言,比如Python和Java,以及移动端和Web端。 工具方面,Selenium是核心,适用于Web自动化,Appium用于移动端,Cypress和Playwright作为现代工具也应该提及。框架方面,Python的pytest和unittest,Java的TestNG和JUnit,以及Robot Framework这样的通用框架都需要包括。 教程资源方面,官方文档是最可靠的,比如Selenium官网、Appium文档,以及平台如MDN Web Docs、Udemy、Coursera等。此外,博客和社区如Stack Overflow、GitHub示例项目也是重要资源。 持续集成部分,Jenkins之外,还可以提及其他工具如GitHub Actions、GitLab CI,但根据引用[4],重点在Jenkins,所以保持推荐Jenkins相关的内容。 移动端方面,除了UIAutomator和Espresso,还需要提到XCUITest,以覆盖iOS。不过引用中主要提到了Android,所以可能需要强调Android的工具。 最后,生成相关问题需要考虑用户可能的后续疑问,比如工具选择、框架比较、持续集成配置、最佳实践等。 现在需要确保所有推荐内容符合用户提供的引用,同时补充必要的信息,确保全面且结构清晰。需要分点列出,使用用户指定的格式,正确应用LaTeX,但根据问题描述,用户的问题不需要数学公式,所以可能LaTeX使用较少,但如果有变量或代码提及,需正确使用。不过当前问题主要是资源推荐,可能LaTeX应用不多,但需注意行内格式如$Jenkins$是否正确,不过Jenkins是专有名词,可能不需要斜体。需要检查是否有变量或需要强调的术语,但可能不需要。 现在整理回答结构: 1. 工具和框架分类:Web、移动端、通用框架 2. 推荐教程资源:官方文档、在线课程、博客、书籍 3. 持续集成部分 4. 开源项目推荐 5. 最佳实践 每个部分下分点,引用对应的引用来源,例如提到pytest时引用[1],提到Jenkins时引用[4],提到UIAutomator时引用[3],Java框架时引用[2]。 需要确保每个引用标注正确,例如在提到TestNG和Maven时标注引用[2]。 可能还需要补充一些常用工具,比如Cypress、Playwright,这些虽然没有在引用中提到,但属于常见的UI自动化工具,用户可能感兴趣。 最后生成相关问题,考虑用户可能想了解如何选择工具、学习路径、框架对比、持续集成配置、常见问题解决等。</think>### UI自动化测试资源推荐 #### 一、工具与框架 1. **Web自动化工具** - **Selenium**:支持多语言(Python、Java等),适用于浏览器自动化[^2][^4]。 - **Cypress**:基于JavaScript,提供实时重载和调试功能。 - **Playwright**:支持多浏览器(Chromium、Firefox、WebKit),内置异步操作。 2. **移动端自动化工具** - **Appium**:跨平台(Android/iOS),支持原生、混合和移动Web应用[^3]。 - **Android UIAutomator**:专用于Android原生应用,提供`UiObject`等API。 - **Espresso** (Android) / **XCUITest** (iOS):官方推荐框架,集成开发环境友好。 3. **通用测试框架** - **Python生态**:`pytest`(用例管理与参数化)[^1] + `Selenium`[^4]。 - **Java生态**:`TestNG`(测试逻辑) + `Maven`(依赖管理) + `Ant`(构建工具)。 - **Robot Framework**:关键字驱动,支持扩展库。 #### 二、教程与学习资源 1. **官方文档** - [Selenium官方文档](https://www.selenium.dev/documentation/):涵盖多语言绑定与最佳实践[^4]。 - [Appium文档](http://appium.io/docs/):移动端自动化配置与用例编写。 - [MDN Web自动化指南](https://developer.mozilla.org/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing):基础概念与工具对比。 2. **在线课程与书籍** - **Udemy**: - *Selenium WebDriver with Python*(实战项目)。 - *Appium Mobile Automation*(从入门到精通)。 - **书籍**: - *《Selenium自动化测试实战》*(基于Java/Python)。 - *《移动App测试实战》*(涵盖Appium与持续集成)。 3. **博客与社区** - **Stack Overflow**:搜索`[selenium]`或`[appium]`标签解决具体问题。 - **GitHub示例**:参考开源项目(如`SeleniumHQ/selenium`)的测试用例设计。 - **技术博客**: - *Testim.io*:分享自动化测试趋势与框架对比。 - *LambdaTest Blog*:跨浏览器测试技巧。 #### 三、持续集成(CI)工具 - **Jenkins**: - 配置自动化测试任务,定时执行或触发构建[^4]。 - 集成报告插件(如Allure)生成可视化结果。 - **GitHub Actions** / **GitLab CI**: - 轻量级CI/CD,适合与版本控制直接集成。 #### 四、开源项目参考 1. **Java UI自动化框架** - 使用`TestNG`管理用例,`Maven`构建,`Selenium`驱动浏览器。 - 示例代码结构: ```java @Test public void testLogin() { WebDriver driver = new ChromeDriver(); driver.get("https://example.com/login"); // 测试步骤 } ``` 2. **Python + Selenium + pytest** - 利用`pytest-fixture`管理浏览器实例[^1]: ```python import pytest from selenium import webdriver @pytest.fixture def browser(): driver = webdriver.Chrome() yield driver driver.quit() ``` #### 五、最佳实践 - **选择工具**:根据团队技术栈(Python/Java)和应用类型(Web/移动端)决定。 - **分层设计**:分离页面对象(Page Object Model)、测试逻辑与数据。 - **失败重试**:添加重试机制(如`pytest-rerunfailures`)提升稳定性。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值