使用进行和测试字符串jsongolang数据表

新钛云服已为您服务1493天

这篇关于“API 测试”和“Godog”:Go 编程语言的 BDD框架。

使用 Godog 进行测试的步骤如下:

1、安装Godog

2、在功能文件中编写测试场景

3、实施测试

现在,让我们更详细地回顾这些步骤中的每一个:

安装Godog

像 Go 中的许多库一样,您可以使用 go get 命令安装它:

如果 go get 命令不起作用,您可以尝试使用 go install 命令。

您也可以按照 Godog 的 Readme 文件中的步骤进行操作,该文件非常易于使用。

在功能文件中指定测试场景

我将使用 reqres API 作为示例。

您可能会注意到我们在功能文件中使用了 Background 关键字。背景很像一个常规场景,我们可以在其中编写一些步骤。但它在该功能文件中的所有场景之前运行。因此,使用 Background 关键字设置配置将节省我们的时间并防止重复。

现在,让我们运行功能文件。 运行功能文件,我们需要 godog 命令:

此命令将运行该功能文件中的所有场景。

如果需要运行一些场景,可以使用标签。标签将有助于以更有效的方式组织功能文件。

要运行您的标记场景:

godog. -t=@regression

运行功能文件后,我们会得到未实现步骤的缺失函数:

当我们执行 godog 命令时,GODOG 将从功能文件中读取步骤并查找此特定步骤的代码。它将继续生成这些函数,直到我们将它们粘贴到 go 文件中。

由于我们有要实现的测试函数,我们可以创建一个 go 文件,粘贴这些生成的函数并开始实现它们。

生成的函数默认返回挂起的错误:

实施测试

API测试主要有四个步骤:

1、设置网址

2、设置预期数据

3、发送请求

4、断言

有几种不同的方法可以使用 Golang 完成这四个步骤。

在这个项目中,我更喜欢使用 JSON 文件来设置预期数据。Golang 提供了许多有效的方法来处理 JSON 文件。经过一番比较,我决定使用 Tidwall 的 gjson 库。

GJSON 是一个 GO 包,可帮助以非常简单快捷的方式从 JSON 中检索数据。特别是当您拥有大量 JSON 数据时,它的单行检索方法是救命稻草。

为了安装 GJSON,我们需要再次使用 go get 命令:

利用 encoding/JSON 标准库包也是操作 JSON 文件的一种选择,但如果您想在不创建结构或映射的情况下获取部分数据,我强烈建议您使用 GJSON 库。

该库中的 Get 方法需要两个参数;JSON 数据(作为字符串)和 JSON 字段路径。因此,我创建了一些辅助函数来将 JSON 转换为字符串:

现在,我们可以通过为 Get 方法提供这些必需的参数来轻松地从功能文件中提供我们的测试脚本。

让我们回到 API 测试的四个步骤。

1、设置网址

由于我们将 JSON 导入您的项目,因此使用 JSON 文件将非常简单和快速。因此,我们可以选择我们的配置文件为 JSON 文件,并在该文件中设置 URL:

现在,我们可以通过从配置文件中读取 URL 来设置它。

请注意,我们的函数名称是我们在功能文件中编写的确切句子。

既然我们现在有了 URL,我们就可以开始处理 HTTP 请求了。但是,我们需要在发送请求之前设置预期的数据。

2、设置预期数据

由于我们的项目中已经有一个 JSON 阅读器,让我们在 JSON 文件中设置预期数据。这在 JSON 的可读性方面也很有意义。

归根结底,在 API 测试中,我们总是会处理 JSON 数据,而当我们使用 JSON 文件时,就会有兼容性。此外,如果 JSON 中有更新,更新此文件中的数据会容易得多。

3、发送请求

我们设置了 URL 和期望的数据,所以我们准备好发送请求了。对于发送请求和获取响应,我发现 Resty 库非常强大。如果您熟悉 Rest Assured Library,您也会喜欢它。

由于这是一个 POST 请求,我们需要设置一个 JSON 正文。我们已经为请求正文创建了一个 JSON 文件。我们唯一需要做的就是读取该文件。让我们使用读取 JSON 文件并将 JSON 作为字符串返回的辅助方法。

如果我们将特征文件的文件路径参数化,这意味着我们的测试脚本将不包含任何硬代码,我们可以通过更改特征文件中的文件路径再次使用此POST 方法。

在 Resty 的帮助下,我们将发送请求并获得响应。

不要忘记捕获状态代码和响应正文。

在这里,我们创建了 statusCode、requestBody 和 responseBody 变量作为全局值,以便我们可以轻松地在其他函数中使用它们。现在我们可以开始断言,这是所有这些努力的目标。

在 API 测试中,我们首先需要验证的是状态码:

对于断言,我更喜欢使用 Gomega,它是一个非常强大的库。我在实用程序包中创建了断言函数,以便我可以在整个项目中使用它们。Gomega 不是这篇文章的主题,所以让我们暂时跳过这个,专注于我们如何从数据表中提取数据。

在这个函数中,为了获取预期的数据,我们再次使用 gjson 的 GET 方法。第一个参数 requestBody 在前面的函数中设置。

首先,我们使用 JSON 助手将其转换为字符串并将其用作 POST 请求的主体,现在我们使用它来检索预期数据。然后,通过使用循环,我们从功能文件中传递 JSON 字段。

通过在数据表中写入这条路径,很容易添加新字段并增加我们的测试覆盖率。只有在这种情况下,您才能通过更改 JSON 文件路径和 JSON 字段来发送许多不同的 POST 请求。这是我们自动化测试的输出:

总而言之,我解释了我们如何使用 Godog 进行 API 测试:

1、使用 Gherkin 语言将场景写入特征文件。

2、运行功能文件

4、实现代码

对于 API 测试,我们遵循了四个步骤:

· 设置网址

· 设置预期数据

· 发送请求

· 断言

了解新钛云服

往期技术干货

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

THE END
0.Groovy的Json解析package cn.codeduck.groovy02 import groovy.json.JsonOutput import groovy.json.JsonSlurper class JsonTest { public static void main(String[] args) { objToJson() jsonToObj() } // JsonSlurper // JSON文本或阅读器内容解析为GjvzquC41yy}/lrfpuj{/exr1r164cm8:fe9ff<
1.json阅读器app下载json阅读器app安卓版下载v3.22.04json阅读器APP为用户们提供了非常好用的手机阅读服务平台,用户们在json阅读器APP能够获取到非常多的阅读资源,海量的小说资源为用户们带来更多阅读选择。软件汇集了百万小说阅读资源,各种类型一网打尽,搜索获取到自己喜欢的 小说资源,在线进行小说阅读,自由切换书源和阅读方式。 jvzquC41yy}/e{xm{0ipo8xqhv553:92;0nuou
2.JSON文件查看器:专业的json格式数据查看工具1.2 JSON的特点 语言无关:JSON被设计为与编程语言无关,几乎所有编程语言都支持JSON格式。 轻量级:它的文本传输大小和处理速度快。 易于阅读:JSON格式的数据结构清晰,阅读方便。 1.3 JSON的应用场景 JSON广泛应用于Web开发中进行数据交换,如API接口的数据交互格式。在移动应用、桌面应用、服务器配置、数据库存取等方面jvzquC41dnuh0lxfp0tfv8|gkzooa=7823=148ftvkimg8igvcomu866;3>79<;
3.JSON数据转换器:跨平台数据交互工具JSON的起源与重要性 JSON是由Douglas Crockford在2001年推广的一种轻量级数据交换格式。与XML相比,它更简洁,易于阅读和编写,且对人类和机器都友好。JSON允许开发者用简单的文本格式来传输和存储数据,无论是在客户端还是服务器端,都能够轻松地处理。 JSON的基本组成 jvzquC41dnuh0lxfp0tfv8|gkzooa<:8;87248ftvkimg8igvcomu8672964;B8
4.JSONCmd Markdown 编辑阅读器,支持实时同步预览,区分写作和阅读模式,支持在线存储,分享文稿网址。jvzquC41yy}/|‚gwnwu/exr1{cthhlm51puug875;7<7
5.Java实现解析JSON大文件JsonReader工具详解javaendArray() void 使用JSON流中的下一个令牌,并断言它是当前数组的结尾。 beginObject() void 使用JSON流中的下一个令牌,并断言它是新对象的开始。 endObject() void 使用JSON流中的下一个令牌,并断言它是当前对象的结尾。 close() void 关闭此 JSON阅读器 和底层 Reader. getPath() String 返回JSON值中当jvzquC41yy}/lk:30pku1jwvkerf1;<453=/j}r
6.Json格式查看器V1.2下载软件介绍 Json格式的数据阅读性很差,但是日常开发调试中难免要阅读,如果数据量不大还好,数据量大的话简直是噩梦(我就碰到过)。 终于让我找到一个不错的Json阅读器,支持粘贴数据并进行可视化展示以及自动格式化数据的功能。 Json格式查看器下载地址 普通下载jvzquC41yy}/zrf|ckhb0lto1jznn8:955?/j}rn
7.阅读体验革命:10大JSON书源格式优化技巧让你阅读如飞JSON书源的应用不仅仅局限于互联网服务,它已经被应用到各种软件和系统中,例如智能设备的数据同步、电子书的阅读器、服务器配置信息的存储等。它的普及不仅依赖于技术的先进性,更取决于其良好的跨平台性,以及与现代编程语言的良好兼容性。JSON书源在移动应用的开发和数据交换中尤其重要,由于其小巧和高效,很多API服务都jvzquC41ygtlw7hufp4og}4eqn{np893oyw7r5q
8.如何在颤动中解码大型json数组腾讯云开发者社区问如何在颤动中解码大型json数组EN我有一个相当大的json文件,它是我使用flutter应用程序从web api下载的jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c|p18;882;4cpu}ft86244:46
9.Json格式查看器(汉化中文版)jsonviewer终于让我找到一个不错的Json阅读器,支持粘贴数据并进行可视化展示以及自动格式化数据的功能。JSON Viewer——Json格式化查看工具,可以对JSON字符串进行格式化显示,可以快速将Json字符串排列规则的树结构,以后于浏览和分析。非常适合做WEB开发或Android开发使用 json viewer中文版功能介绍 点击Format可以方便 jvzquC41yy}/k}j{g0ipo8wguq{sen4js|t`upq332;.;=;338?
10.Feeder首页文档和下载AndroidRSS阅读器应用Feeder 是一款适用于 Android 的实用 RSS/Atom/JSON 新闻阅读器应用程序。 特征 离线阅读 通知支持 OPML 导入 / 导出 Material 设计 快速安装 克隆项目: git clone --recursive https://github.com/spacecowboy/Feeder.git 然后构建应用程序并将其安装到通过 USB 连接的手机上: ./gradlew installDebug 展开阅读jvzquC41yy}/q|hjkpg/pny1r1lfgmjt
11.5款经典代码阅读器的使用方案对比就IDEA而言,除了通过鼠标点击追踪(Tips: mac下默认快捷键Command+B,windows下默认快捷键Ctrl+B)的方式阅读代码外,还有很多辅助阅读代码的插件,包括RainbowBrackets(多彩括号,多重嵌套代码分析),Statistic(代码行数统计),SequenceDiagram(时序图绘制)等。 用SequenceDiagram自动化分析fastjson(1.2.84)中核心链路JSON.parseObjvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1B=9948
12.S3选择操作JSON 使用 SQL 语句从 JSON 文档中扫描和抽取信息。 它可以通过各种方式嵌套,例如在对象或数组中。 这些对象和数组可以在彼此之间进一步嵌套,而不受任何限制。 JSON 是格式结构。 S3 选择引擎支持使用 JSON 阅读器在 JSON 格式输入数据的基础上使用 SQL 语句,从而支持扫描高度嵌套和复杂 JSON 格式的数据。 例如,具有几千兆jvzquC41yy}/kkr0eqs0fxhu1|n0u}ttcik.enuj194109Dvqrod?juk/u9.unqgev3prnwcvkuou
13.【阅读app解除书源版】阅读app无广告版下载(内置书源)v3.23.110究极书源3.7:https://www.yck000ceo.com/yuedu/shuyuans/json/id/255.json 品书阁:https://www.yck000ceo.com/yuedu/shuyuan/json/id/4604.json 常见问题 1、为什么第一次安装好之后什么东西都没有? 因为阅读只是一个转码工具,不提供内容,第一次安装app,需要自己手动导入书源,可以从QQ群、公众号“开源阅读jvzquC41yy}/miy0eun1jsftqoe1::9626/j}rn
14.第1章社会媒体社交数据和Pythonjson.dumps()函数还接收第二个参数indent来指定缩进的字符数量,这对于漂亮的打印效果非常有用。 当手动分析更复杂的JSON文件时,使用一个外部JSON阅读器很可能更方便,这种阅读器可以在浏览器中良好地打印,并允许用户任意地折叠或展开JSON数据。 有些免费的JSON阅读工具是基于Web的服务,如JSON Viewer。用户只需粘贴一段jvzquC41yy}/k}ztkpm/exr0ep5cqxp1vwvvdjwvkerf1;8;27
15.热销智能高速epcgen2阅读器第2代读者rfid复用读卡器藏2个阅读器epc gen 2标签阅读器手持式epc gen2读卡器略读阅读器6英寸智能阅读器nexqo阅读器被动epc gen2阅读器c读者101读者epc c1g2读卡器g 2读卡器dtc读卡器s600读卡器 远程安卓7.1 lmpinj E710/R2000 4/8端口射频识别阅读器超高频JSON格式HTTP/MQTT协议仓库库跟踪 jvzquC41ejoog|j0cnocckf0eqs0i8jre/mfp67/tggeg{3jvor
16.JSON在线解析|菜鸟工具JSON 在线解析是一款 JSON 格式化工具,你可以在线验证、编辑和格式化 JSON 数据,格式化后的 JSON 数据以树形结构展示,更易于阅读,此外还可以将 JSON 转换为 XML、YAML、CSV格式。..jvzquC41e0xvpxtd0eun1owqpv3fpm475
17.将JSON转换为Map|那些遇到过的问题(其中JSON_SOURCE是文件,输入流,阅读器或json内容字符串)此外,如果你想要一个类型化的Map(利用java泛型),你可以这样做:Map <String,MyPojo> typedMap = mapper.readValue(jsonStream,new TypeReference <Map <String,MyPojo >>(){}); (34认同) 如果使用Maven项目,则需要<dependency> <groupId> com.fasterxmljvzquC41sc42t:l0eqs0uo4cum543996;870
18.Gson我们可以根据 JSON 流的来源使用以下阅读器之一: BufferedReader LineNumberReader CharArrayReader InputStreamReader FileReader FilterReader PushbackReader PipedReader StringReader 4.读取 JSON 流 在创建包装了有效 JSON 源的JsonReader之后,我们可以开始对流令牌进行迭代并查看令牌值。 jvzquC41yy}/mjsenq{e0ls1crgdjnhp1juxvxiqkppbxj2|j17:7<823
19.第12–16课:使用VisualBasic的RSS阅读器项目|Microsoft此视频系列专门面向学习有关使用 Visual Basic 2005 速成版创建应用程序的基础知识的用户。本系列包括超过 10 个小时的基于视频的说明材料,为您从创建第一个“Hello World”应用程序直到获得一个功能完善的 RSS 阅读器应用程序提供全程指导。立即学习如何编写您的第一个应用程序! jvzquC41oujo0vnetqyph}3eqo5{j6hp1dkhkwsgt1hc59=:544buy}