首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Cucumber (小黄瓜):如何在测试步骤中使用非字符串(Long)类型的参数?

Cucumber(小黄瓜)是一个行为驱动开发(BDD)工具,可用于自动化测试。在测试步骤中使用非字符串类型的参数可以通过使用正则表达式和转换函数来实现。

在Cucumber中,测试步骤通常使用正则表达式与Step Definitions(步骤定义)进行匹配。要在测试步骤中使用非字符串类型的参数,可以使用尖括号(<>)来定义参数的占位符,并在Step Definitions中使用转换函数将参数转换为所需的类型。

以下是在测试步骤中使用非字符串类型的参数的示例:

  1. 编写.feature文件,定义测试场景和步骤:
代码语言:txt
复制
Feature: 使用非字符串类型的参数
  Scenario: 使用Long类型的参数
    Given 我有一个长方形的宽度为 <width> 和长度为 <length>
    Then 计算面积应该为 <area>
  1. 编写Step Definitions文件,与.feature文件中的步骤进行匹配并实现相关逻辑:
代码语言:txt
复制
import io.cucumber.java.zh_cn.*;
import static org.junit.Assert.assertEquals;

public class MyStepDefinitions {
    private Long width;
    private Long length;
    private Long area;
    
    @Given("我有一个长方形的宽度为 {long} 和长度为 {long}")
    public void 设置长方形的尺寸(Long width, Long length) {
        this.width = width;
        this.length = length;
    }

    @Then("计算面积应该为 {long}")
    public void 验证面积(Long expectedArea) {
        this.area = this.width * this.length;
        assertEquals(expectedArea, this.area);
    }
}

在这个示例中,{long}表示将一个Long类型的参数传递给Step Definitions中的方法。Step Definitions中的转换函数将自动将字符串类型的参数转换为Long类型。

  1. 运行测试

执行上述的.feature文件中的场景,Cucumber将根据正则表达式匹配步骤,并调用相应的Step Definitions方法,将参数传递给方法进行处理。

这是一个简单的示例,说明了如何在Cucumber测试步骤中使用非字符串类型的参数。实际应用中,可以根据需要定义和使用其他类型的参数,例如整型({int})、浮点型({double})等。

腾讯云提供了CVM(云服务器)产品来支持云计算场景中的测试环境搭建,您可以通过以下链接了解更多信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

测试兵器谱のCucumber-JVM框架篇

写在前面 最近业务上使用自动化测试项目在改进项目执行方案,优化框架,正好结合实践记录一下最近遇到问题和解决方法,打算从以下几个部分跟大家探讨一下: 认识一下Cucumber-JVM框架 基于Anyproxy...我们SDK项目作为 Java 测试项目,因此使用 Cucumber Java 语言实现版本:Cucumber-JVM Cucumber-JVM关键字 如上面所说,Cucumber核心语法是 Gherkin...当然可以有多个 Given 步骤(推荐使用 And 或者 But 来变更可读) When / 当 When 步骤用来描述一个事件, 或者一个动作。如果是连续动作,推荐使用And提高可读性。...Cucumber标签非常好用,举个应用场景例子,我们测试用例会有几种维度,比如 按广告平台分,例如:360,google,gdt 按手机厂商分,例如:apple,xiaomi,huawei 按广告类型分...步骤五:执行feature文件生成测试报告 Cucumber-JVM测试报告比较简陋,后面部分会介绍Jenkins Cucumber插件生成美观报告,生成结果如下: ?

1.5K10

什么是行为驱动 Python?

使用 And 和 But 可以为任何类型添加附加步骤。 可以使用输入对步骤进行参数化——注意双引号里值。...Python 机制 每个 Gherkin 步骤必须“粘合”到步骤定义——即提供了实现 Python 函数。 每个函数都有一个带有匹配字符串步骤类型装饰器。它还接收共享上下文和任何步骤参数。...功能文件必须放在名为 features/ 目录,而步骤定义模块必须放在名为 features/steps/ 目录。 任何功能文件都可以使用任何模块步骤定义——它们不需要具有相同名称。...默认,也是最简单匹配器是 parse,如上例所示。注意如何解析参数化值并将其作为输入参数传递给函数。一个常见最佳实践是在步骤参数加双引号。...例如,它可以使用 pytest-xdist 并行运行 Gherkin 场景。 BDD 和 BDD 测试也可以与相同过滤器一起执行。pytest-bdd 还提供更灵活目录布局。

1.7K30
  • 如何高效使用Gherkin

    在技术选型上,我们使用了类Cucumber测试方案,使用Gherkin语言构建一套自动化语言步骤库。...Gherkin语言有时候又被称为小黄瓜语言,它是第一种有着类似自然语言可读性业务语言,用来描述业务行为,而不必关心具体实现细节。它也是一种领域特定语言,用来定义Cucumber格式测试。...规则3:使用不同时态 在Gherkin定义包含Given语句时候,要使用过去时时态,因为这表示测试之前发生一个前置条件。:“Given the user was logged-in” 。...在Gherkin定义包含When语句时候,要使用现在时时态,这代表测试执行时候发生:“When the user cancels the form” 在Gherkin定义包含Then语句时候...动作式Gherkin语句用每一个参数步骤描述一个行为,这种风格使得步骤体积不必非常大。

    29520

    基于Appium移动端UI自动化测试

    Cucumber是支持BDD(Behaviour-Driven Development,行为驱动开发)工具,可以自定义语法规则模版,将文本描述步骤转为使用代码执行步骤。...以定义一个最基本点击操作为例,预期语法规则为"当 点击 [元素名称]",则可以使用如下定义: // Cucumber使用正则表达式匹配引号内容作为type参数 @当("^点击 \"(...通过Cucumber定义常用操作,点击、滑动、校验文本等,可以降低编写一条测试用例工作量,提高测试用例可读性,但并非所有功能都可以使用常用操作方式。...执行测试用例过程,可能在查找元素时恰好遇到手机端弹窗盖住花椒APP元素等情况,因此在执行测试用例过程,会检测手机端可能出现测试步骤预期弹窗,包括首充弹窗、开播礼物下载弹窗等,关闭弹窗后再次查找元素...不同 htest client: Java客户端,用于定义Cucumber步骤,更新手机APK,初始化Appium,执行测试用例;使用方式:在pc端命令行执行java -jar htest-client.jar

    2.9K10

    接口自动化测试框架Karate入门

    来源:http://www.uml.org.cn/ 在这篇文章,我们将介绍一下开源Web-API自动化测试框架——Karate介绍 Karate是基于另一个BDD测试框架Cucumber来建立,并且共用了一些相同思想...其中之一就是使用Gherkin文件,该文件描述了被测试功能 与Cucumber不同测试用例不需要用Java编写,并且被完整描述在Gherkin文件 通过Karate,您可以编写任何类型Web....建立在Cucumber-JVM基础上 2.可以像标准Java工程一样运行测试并且产生报告 3.测试代码开发不需要掌握任何Java知识 4.即使对编程人员,测试代码也很容易编写 环境需求 1.JDK1.8...文件以Feature关键字开头,在同一行跟着所测试功能名称 一个用例文件包含不同测试场景,每个场景都以关键字Scenario开头,并且包含多个步骤。...这些步骤包含关键字Given,When,Then,And和But 有关Cucumber和Gherkin结构更多信息,请点击此处 Feature: Learn How to use Karate for

    3K30

    浅谈BDD下自动化测试框架

    四、BDD自动化 测试框架Cucumber Cucumber简介 Cucumber是应用比较广BDD自动化测试工具之一,它理解我们使用Gherkin语言编写测试用例,自动解析场景对应步骤定义,进行系统行为验证....feature:定义需求场景及步骤描述 步骤定义:步骤描述具体实现,即可执行步骤代码 运行测试:执行测试用例 生成报告:Cucumber支持生成多种格式测试报告 如何编写feature文件 .feature...:可以与Given、When、Then同时使用,使得step描述更清晰易懂 虽然Cucumber本身在技术上并不区分Given、When、Then这三个关键字,但在实际使用还是推荐按照词组意思描述步骤...Feature执行feature文件,当feature存在未实现步骤时,Console会打印对应java方法,将代码拷贝到java文件,完善测试步骤即可,以下是实现测试步骤代码示例: ?...HTML Reports:将测试结果输出到html文件, plugin参数配置如下: ? HTML格式测试报告: ?

    6.9K30

    Cucumber入门 - 啥是BDD?

    正因为使用需求来进行测试,这个强大愿景,才使得BDD可以更加节约、迅捷。 图2.使用ruby进行步骤定义。作为用户需求与测试用例行为,仅仅是文本。...咱们先来看看复杂项目中,传统开发流程W模型,如图: ? 在W模型,每一份项目文档,都对应着一份测试文档,:用户需求文档与用户验收测试文档。...工作,通过对用户行为深入理解,书写系统行为以及可能需要模块行为。在开发人员编写产品代码时,由测试人员编写步骤定义。周五,开发人员陆续将代码提交,并使用测试人员自动化过行为进行测试。...behavior)是用功能(feature)文件来描述 Cucumber只是BDD一个工具,还有其他工具Jbehave等 说完正事儿,我得表个态。...Cucumber自己源码,就包含Cucumber自己功能(feature)文件。因此,他们难免会对使用者,有期许,期许他们与自己一样,有着良好编码技能与质量意识。

    1.3K10

    干货 | 基于 BDD 理念 UI 自动化测试在携程度假应用

    其中步骤定义基础代码是 JavaScript,而自动化库使用 Puppeteer Node 库。 想要运行这个 BDD 测试用例,则需要用到 Cucumber-CLI 提供一些命令。...使用 Cucumber测试用例(自然语言)可以认为是 DSL 在代码对该 DSL 进行解析,映射成具体 JS 代码 Puppeteer 负责执行具体命令(:打开浏览器、点击某按钮) 封装通用步骤命令...,只需要组合,使用者不需要关心具体实现 现在我们来回看下面这张图: 1)我们在 Cucumber Hooks 定义了相关钩子函数,把打开浏览器等每个测试用例需要做通用工作给做了; 2)在 Cucumber...这样我们就可以通过 this.browser 和 this.page 在我们步骤定义中方便操控 Chrome 了; 3)封装相关通用步骤:Given 打开"xxx"页面,Then 截图; ?...DOM 元素需要加上 test-id 以供自动化测试使用 提供自动化测试核心框架 @ctrip/cucumber_web_common ,发布公司 NPM 仓库 提供详细文档,以供大家查阅步骤如何使用

    2.6K21

    推荐一款基于业务行为驱动开发(BDD)测试框架:Cucumber

    Gherkin它使用一组特殊关键字来构建结构化和有意义测试步骤。...它设计是为了描述而非直接执行,但它与Cucumber工具相结合,从而实现自动化测试过程,它旨在让不同背景的人(业务人员、开发人员和测试人员)都能够通过同一文档理解需求并达成共识。...我们将使用Cucumber来编写测试用例,使用Selenium WebDriver来模拟用户在浏览器操作。...我们使用Cucumber注解来定义测试步骤,并使用Selenium WebDriver来模拟用户在浏览器操作。...我们使用了Behave注解来定义测试步骤,并使用Selenium WebDriver来模拟用户在浏览器操作。

    23210

    BDD测试框架之Cucumber使用入门

    Scenario,每个Scenario包含(step)步骤列表,步骤使用Given、When、Then、But、And这些关键 词,cucumber对这些关键词处理是一样,但是我们在使用时候需要按照场景区分...4 Step denfinitions介绍 Cucumber定义每一个step(步骤)都需要有一个step definition对应,默认的话是使用Ruby来编写定义脚本(现在有cucumber-js...等也支持javascript、java等来编写),支持通过正则表达式从step传递参数。...(假如 当 那么) Cucumber步骤中会包含Given、When、then这些词组,cucumber本身在技术实现上不区分这三个词组,但是在使用上推荐按照词组意思来使用。...Given-用例开始执行前一个前置条件,类似与编写代码setup一些步骤。 When-用例开始执行一些关键操作步骤,类似点击元素等。 Then-观察结果,就是平时用例验证步骤

    2.5K40

    BDD测试框架之Cucumber使用入门

    Scenario,每个Scenario包含(step)步骤列表,步骤使用Given、When、Then、But、And这些关键 词,cucumber对这些关键词处理是一样,但是我们在使用时候需要按照场景区分...Step denfinitions介绍 Cucumber定义每一个step(步骤)都需要有一个step definition对应,默认的话是使用Ruby来编写定义脚本(现在有cucumber-js...等也支持javascript、java等来编写),支持通过正则表达式从step传递参数。...当 那么) Cucumber步骤中会包含Given、When、then这些词组,cucumber本身在技术实现上不区分这三个词组,但是在使用上推荐按照词组意思来使用。...Given-用例开始执行前一个前置条件,类似与编写代码setup一些步骤。 When-用例开始执行一些关键操作步骤,类似点击元素等。 Then-观察结果,就是平时用例验证步骤

    3.9K51

    干货 | 行为驱动开发在携程机票前端研发流程实践

    BDD重点是通过与利益相关者讨论取得对预期软件行为清醒认识。它通过用自然语言书写程序员可读测试用例扩展了测试驱动开发方法。...使用 BDD 敏捷软件开发包括以下关键步骤: 需求各利益方(产品,测试,开发)对需求进行充分讨论 讨论基于软件行为展开 讨论产出为自然语言书写程序员可读测试用例文档 产出测试用例能在自动化测试平台上执行...为了建立 “自然语言测试用例文档”和“自动化测试代码”间关联关系,需要用到支持 BDD 工具,我们使用Cucumber。...为了实现 BDD 测试用例能在自动化测试平台上执行”,需要用到 UI 自动化测试框架,我们使用了 Macaca。...MEC Server, React 把 state 发送出来,测试用例断言部分,直接校验界面数据,而不再通过 UI 自动化框架实现。

    2.3K51

    性能测试工具Top5——2019

    在实际应用,软件应用程序经常会遇到一些问题,多个用户同时使用时运行缓慢、不同操作系统之间不一致性和可用性差。为了解决这些问题,生成了一个方法:性能测试。...这种测试类型主要目的是向利益相关者提供有关应用程序速度、稳定性和可伸缩性等性能信息。 什么是性能测试? 性能测试是一种功能性测试技术,用于在各种工作负载下,根据响应能力和稳定性来确定系统参数。...性能测试通常分为以下常见类别: 负载测试: 这种测试类型用于评估系统在正常和峰值负载条件下性能。 耐力测试: 是评估软件性能如何在长时间执行正常工作。耐力测试目标是检查系统问题,例如内存泄露。...可扩展性测试: 这种测试类型用于衡量应用程序在放大或缩小用户请求数量或任何功能功能能力方面的性能。 秒杀测试:(尖峰冲击测试) 是压力测试一种,它评估软件负载在快速和反复大幅度增长时性能。...提供内置基于图像测试自动化 用于创建测试用例数百个内置关键字 支持BDD Cucumber以自然语言表达测试场景 可用于自动化测试和探索性测试 测试功能可以通过插件在Katalon上扩展,插件存储关于

    1.6K61

    两款iOS和Android都通用开源自动化测试工具

    Calabash提供了一个桥梁,允许Cucumber测试对iOS和Android运行和验证。Cucumber测试使用一列语句写入,这些语句会形成很多测试场景。...Cucumber所有语句使用Ruby定义。在Calabash,Cucumber语句只能被定义一次,但可以在Cucumber脚本不同场景重复使用。...实际测试是用Gherkin写,依靠Ruby代码支持,并在Cucumber框架上下文中运行。 优点: ◆大型社区支持。 ◆简单,类似英语表述测试语句。...◆支持在屏幕上所有动作,滑动,缩放,旋转,敲击等。 ◆大型且热心社区。 ◆跨平台开发支持(同样代码在Android和iOS设备中都适用)。...缺点: ◆测试步骤失败后,将跳过所有的后续步骤。这可能会导致错过更严重产品问题。 ◆需要时间来进行测试,因为它首先总是默认安装app。

    2.9K80

    移动开发流水线建立以及自动化测试

    不是整个任务成功必要条件,而在我之前开发项目中,功能测试是由开发人员与测试人员一起结对书写,因此会把它作为发测试前置步骤,这点根据每个团队实际情况考量。 工具集: 工欲善其事,必先利其器。...---- 关键设计: 持续对主分支进行构建: 我们需要保证开发团队每一次代码提交都是能工作,能通过测试,相比传统开发过程在最后关头进行测试,大大降低了风险。...比如我们发包步骤就是运营人员手工操作,执行功能测试到合并报告就是自动进行。...关于自动化测试 iOS和安卓开发本身就提供单元测试支持,比如iOS提供XCTest,安卓有JUnit,根据需要进行调整,比如iOS上我使用Kiwi。...我开开心心地用了起来,结果看报告发现这家伙在失败时候不会主动截图,看样子得自己去实现了,好在cucumber提供了一些hook方法,比如可以在每个执行步骤之后做点什么。

    1.3K20

    自动化测试框架

    例如,如果必须单击发送电子邮件按钮并在后端确认已收到电子邮件,则Citrus可以接收此电子邮件或由UI触发JMS通信,并验证后端结果,所有的操作和验证步骤都在一个测试用例。...Cucumber可以快速、简单地建立执行程序,并允许在测试重用代码。它支持Python、PHP、Perl、.NET、Scala、Groovy等语言。易于阅读和理解格式功能验证自动化。...Cucumber还有一个很好功能是规范和文档都上传到一个最新文档库,使不熟悉测试业务相关人员都能很快了解业务内容。当测试报告以业务可读较高编写时,所有人可以轻松阅读脚本代码。...规范:规范自动化测试使用Markdown语言、C#、Java和Ruby在现有的IDE(Visual Studio、Eclipse以及Intellij IDE)编写。...Carina Carina使用流行开源解决方案(Appium、TestNG和Selenium)构建,可减少对特定技术堆栈依赖。

    2.2K20
    领券