如何在黄瓜中进行后端测试

黄瓜是一种规范语言的执行框架。 它并不是要成为测试语言,而是用于创建测试自动化。

黄瓜最适合出现一些现实世界中的参与者互动并取得某种成果的情况。 当可以从用户的角度编写它时,它特别有用。

 Given Sarah is a premium club member  When Sarah logs into the homepage  Then she sees the premium club member call to action 

尽管这可能是关于屏幕的讨论,但它也以用户和产品的语言进行讨论。 这是一个舒适的规格。

谁是后端用户?

假设我们要在Cucumber中为后端编写API测试? 这给我们带来了一些问题,例如,它实际上是一个不一定使用用户语言的较低级接口,或者我们必须跟踪发出的请求的状态,因为我们不能仅仅谈论正在处理的内容。屏幕。

那我们应该吗?

Cucumber是编写API测试的错误工具吗?

答案在于我们是否认为后端具有可以以人类可读形式表达的规范。

我们认为后端有规范吗?

让我们承认,无论规范是什么,它都是比功能级验收测试更具技术性的语言,而功能级验收测试可能与此后端只是组件的业务流程有关。

这里的一些问题是写作。 我们希望以简洁的形式表达系统的预期/期望行为。 这是我们需要求助于写作1-2-3的地方 。 每个故事都有一个起点和终点。

您将如何向为您的工作付费的人解释给定API的目的是什么?

好吧,这个API是一个基于接收到他们的凭据为用户生成用户登录证书的API,假设该用户对凭据数据库是已知的,否则就不会……

好吧..还有一点点不足,但至少听起来很有价值。 我们可以1-2-3吗?

对于已知用户,提供凭据将产生证书。

在小黄瓜中:

 Given Sarah is known to the credentials database as "sarah" with password "s4r4h"  When Sarah's sign- in request is submitted as "sarah" , "s4r4h"  Then a certificate is returned  And the certificate contains the name "Sarah" 

从哪儿开始?

制作的示例很简单……您如何开始呢?

这里有一些想法:

  • 绘制您要测试的服务的图表
  • 确定图中的哪些对象是测试的目标,哪些是以下两者之一:
    • 服务的消费者
  • 考虑通过服务的数据流:
    • 您如何开始?

现在我们了解:

  • 服务的外部触发器/客户端
  • 服务返回的东西
  • 服务需要发生以支持它的事情
  • 服务对外界所做的事情

我们的规格应为上述术语。

奖励功能

我们的测试设计应该能够解释自动化将如何以客户端的身份使用服务,提供任何依赖关系以及观察服务的副作用和响应。

翻译自: https://www.javacodegeeks.com/2020/02/how-to-phrase-back-end-tests-in-cucumber.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql权限层级体系_MySQL权限体系介绍

官方手册:https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.htmlMySQL是一个多用户的数据库,MySQL的用户可以分为两大类:(1)超级管理员用户(root),拥有全部权限(2)普通用户,由root创建,普通用…

云服务器 生物信息学,云服务器 生物信息学

云服务器 生物信息学 内容精选换一换挂载有NVMe SSD盘的Linux弹性云服务器(如P1型云服务器)发生故障时,需联系管理员通过异地重建的方式进行恢复,新建故障弹性云服务器。如果故障弹性云服务器在/etc/fstab中设置了NVMe SSD盘的开机自动挂载功能&#xff…

python图像转字符画_python图像处理-字符画风格图片

前言 字符画图片,顾名思义就是由一个个字符组成的图片,下面这张图片很容易帮助你理解,如果我们可以将字符排列好,让他看上去像一个物体的形状,那么最后再将它输出保存为一张图片就可以实现了。下面的这些形状同样可以使…

在mybatis用mysql的代码块_mybatis plus与mysql分库组件mycat的结合

之前的文章简单介绍了一下mybatis plus:《使用Mybatis-plus代替原生Mybatis》。截止目前在项目中使用了一段时间的mybatis plus,再也没有写过sql,都用mp的Wrapper封装查询条件了。这里先简单介绍一下mp的用法(抱歉,上一篇里面讲得…

响应服务器535.5.7.0AUTH,javax.mail.AuthenticationFailedException:535 5.7.3无法发送邮件

我遇到了错误javax.mail.AuthenticationFailedException:535 5.7.3尝试发送电子邮件时的身份验证。我尝试使用两个不同的电子邮件帐户。一个使用Office365服务器详细信息,另一个使用Gmail服务器详细信息。在两种情况下,我都会遇到相同的错误。…

react生命周期函数_如何优雅的消灭掉react生命周期函数

开源不易,感谢你的支持,❤ star concent^_^序言在react应用里,存在一个顶层组件,该组件的生命周期很长,除了人为的调用unmountComponentAtNode接口来卸载掉它和用户关闭掉浏览器tab页窗口,该顶层组件是不会…

jolokia_Hawtio和Jolokia的Hibernate统计

jolokia企业Java的很大一部分处理数据。 在企业设置中使用数据的所有不同方式中,仍然存在使用任何种类的O / R映射的行之有效且广泛教授的方法。 JPA标准使每个人都比较容易使用它,并且它也应该是可移植的。 但是,我们不要谈论迁移细节。 O /…

python主循环方法mainloop_python gobject.mainloop吞噬信号事件

没有人感兴趣,所以让我尝试. 只是在同一页面上: import signal from gi.repository import GObject GObject.threads_init() mainloop GObject.MainLoop() signal.signal(signal.SIGINT, lambda n, f: mainloop.quit()) mainloop.run() 此代码有效: imp…

JVM垃圾收集和优化

总览 在对系统进行性能相关问题的故障排除时,内存优化是一个需要深入分析每个系统在内存中存储的内容,存储时间和访问模式的地方。 这篇文章是要在背景信息上进行注释,并在此工作中要注意一些要点,这些工作要专门针对基于Java的实…

redis desktop manager连不上redis_Redis安装教程

Ⅰ 简介Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings),散列(hashes&#…

python打开方式错误_浅谈python 调用open()打开文件时路径出错的原因

昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile open("C:\Users\Spirit\Desktop\bc.txt",r) data infile.read() print(data) main() 然而结果总报错invaild argument 或者cant found such file *** 查找问题后 发现是由…

c++如何将int数组中的值取出*号运算符_如何用动态规划巧妙解决 “双十一” 购物时的凑单问题?羊毛薅起来!!!...

点击上方“程序员大白”,选择“星标”公众号重磅干货,第一时间送达今年过去的 “双十一” ,你有薅到羊毛吗?每年的双十一,会有各种促销活动,比如 “满 300元减 80 元”。假如你女朋友的购物车中有 n 个(n &…

mysql sql 去除重复行_mysql – sql自连接表删除重复行

我有下表:╔════════╦════════════╗║ USERID ║ LANGUAGEID ║╠════════╬════════════╣║ 1 ║ 2 ║║ 1 ║ 7 ║║ 1 ║ 8 ║║ 2 ║ 10 ║║ 2 ║ 3 ║╚════════╩════════════╝现在我想为每…

python操作界面_Python使用PyQt5的Designer工具创建UI界面

一、Designer-UI编辑器 Designer是pyqt5-tools带的工具,默认可以在Python安装目录下找到的。我的之前项目导入过pyqt5-tools,所以我直接全盘搜索到了。打开designer后,我们可以编辑我们想要的UI界面,下面是我编辑的测试界面&#…

python统计词频_Python统计四六级考试的词频

Python统计四六级考试的词频此文首发于公众号 「Python知识圈」, 欢迎直接去公众号查看阅读文本大概需要 4.6 分钟。今天是教师节,先祝天下所有老师教师节快乐,感谢您在我学生时代对我的谆谆教诲。现在是开学之初,风华正茂的青年才…

易语言 字段重复_使对易失性字段的操作原子化

易语言 字段重复总览 易失性字段的预期行为是,它们在多线程应用程序中的行为应与在单线程应用程序中的行为相同。 禁止它们表现相同的方式,但是不能保证它们表现相同的方式。 Java 5.0中的解决方案是使用AtomicXxxx类,但是这些类在内存&…

python爬虫数据可视化_适用于Python入门者的爬虫和数据可视化案例

本篇文章适用于Python小白的教程篇,如果有哪里不足欢迎指出来,希望对你帮助。 本篇文章用到的模块: requests,re,os,jieba,glob,json,lxml,pyecharts,heapq,collection 首先 本文我们的目的 抓取周杰伦的所有歌曲, 歌词&#xff0…

qt4 连接mysql_Qt4访问mysql 数据库的简单教程

编译问题:1、系统中安装有VC,所以头文件冲突手工修改makefile删除所有-I 加载VC头文件的项目2、mysql cannot find -llibmysql指定libmysql.a的路径-LQt 4 访问 mysql 数据库的简单教程云帆 2006/5/18因为目前无法使用linux, 所以 Qt 4.1.2 是…

python多个函数_什么是在Python中使用多个构造函数的干净的、pythonic的方法?

其实None对于“魔法”价值观来说要好得多:class Cheese(): def __init__(self, num_holes None): if num_holes is None: ... 现在,如果您想完全自由地添加更多参数:class Cheese(): def __init__(self, *args, **kwargs): #args -- tuple o…

Java 8和Java 14之间的新功能

从版本9开始,Java每6个月就会有新功能,因此很难跟踪这些新更改。 互联网上的大多数信息都描述了最近两个Java版本之间的变化。 但是,如果您的情况与我相似,则说明您使用的不是Java的最新版本,而是使用了较旧的Java版本…