提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2020-06-05 10:48:39.160|阅读 1197 次
概述:GraphQL端点需要与任何端点一样多的测试,并且自动化测试在这里也很有帮助。在下面了解有关如何使用测试自动化来测试GraphQL的更多信息!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
GraphQL端点需要与任何端点一样多的测试,并且自动化测试在这里也很有帮助。在下面了解有关如何使用测试自动化来测试GraphQL的更多信息!
GraphQL是一种API的查询语言,始于Facebook,但自2016年开始开源。GraphQL提供的查询和响应的简化源自移动应用程序的使用,但它在简化复杂API的使用同时减少返回的数据量通用性方面具有普遍用途。
最初创建GraphQL时,它是为解决特定问题而构建的。2011年,由于大多数用户都通过浏览器与应用程序进行交互,因此我们开始看到从Web到移动设备的大量迁移。特别是在Facebook的情况下,这需要从应用程序中多个不同位置调用多个API。根据方案要实现的目标,这些API传递的信息太多或太少。因此,为解决这一挑战,Facebook寻求创建一种简化信息传递并减少完成其方案所需的总流量的方法。
这催生了GraphQL。该技术最初由Facebook的iOS移动团队使用,然后扩展到其他移动界面。很快,所有移动交互中的绝大多数都利用了他们的GraphQL API。在2015年,Facebook宣布实施该技术,全世界看到了使用该技术的优势,并迅速采用了该技术。
GraphQL是存在于前端系统和后端API之间的抽象层。该抽象层允许您构造查询,以访问后端中的多个资源,并将该数据汇总到一个有意义的响应中。
后端API通常是细粒度的,因为我们想为我们的应用程序创建可重用的构建块。但是,这并不能直接转化为我们的用户故事,也不能转化为我们希望能够从前端完成的操作。GraphQL是一种使用界面描述其系统行为的接口来简化与后端数据交互的方法,因此您可以从API中获得有效的数据。
每个GraphQL模式的映射都对应于函数。然后,这些功能将根据您的业务逻辑,针对您的REST API、数据库以及收集请求的数据所需的任何其他资源,对后端进行后续调用。
然后,这些函数会将必要的数据组合成一个响应,该响应将保持与请求相同的形状,从而很容易理解哪些数据与请求中的哪些元素相关联。
Ask for what you need,
get exactly that - graphql.org
另外,可以设置GraphQL在组合查询响应时调用多个后端服务。这减少了消费者花在浏览API文档上以了解可从呼叫中获得哪些信息的总时间。
与传统的REST API接口相比,GraphQL具有许多优点。与大多数技术实施一样,没有灵丹妙药或一种技术堆栈比另一种更好。但是GraphQL获得关注的原因之一是因为它在检索信息方面的灵活性。
使用传统的REST API时,通常您要进行的检索信息并不是您对系统的唯一调用。例如,如果要检索我的帐户余额,我要做的第一件事是检索我的客户编号,然后使用该客户编号检索我的帐户编号。有了帐号后,就可以查询该帐号的余额了:
REST API没有错。这就是它们的工作原理,它们使我们能够创建离散的动作,并可以以许多不同的方式加以利用。但是在这种特殊情况下,为了检索我想要的信息,我必须使用链接在一起的三个API序列进行调用。此外,如果我们考虑在每个API调用的交互过程中交换的数据量,我们必须发送适当的请求并接收该模式定义的整个响应。在我们的案例中,我实际上只需要处理客户ID、帐户ID和余额的三个值。
因此,让我们看看在GraphQL世界中该交易如何进行:
query { Customer(name:”Chris Colosimo”) { accountId{ Balance } } }
如果您是GraphQL的资深用户,请持怀疑态度接受该请求。我用它来说明传统上可以用三个API调用完成的事情可以用一个使用GraphQL来完成。最好的部分是,它不需要重新实现现有功能。
REST和GraphQL之间还有许多其他优点和缺点,但是需要特别注意的是GraphQL和REST API并不互斥,并且采用其中一种并不排除另一种。实际上,两者是很和谐地合作的。
因此,问题不是使用GraphQL还是REST API,而是何时应该将GraphQL引入前端资源?从理论上讲,答案实际上非常简单:当您要为想要利用API的使用者创建简单有效的接口时,应该使用GraphQL。此外,当您想减少前端与后端之间交换的总流量时,您可能要考虑利用GraphQL,就像Facebook在移动流量方面所做的那样。
GraphQL是一项非常强大的技术,可以使您的API使用者以更有效的方式访问其信息,但是为了确保体验以您期望的方式运行,您需要验证GraphQL API。这是自动化测试的地方。
有很多测试自动化工具可以帮助您测试GraphQL API。我将为您提供使用Parasoft SOAtest的示例,Parasoft SOAtest是一种广泛使用的API测试解决方案,它简化了跨多种技术验证关键API的艰巨挑战。它支持各种消息格式和协议,并且已经有一段时间支持GraphQL。
GraphQL端点接受查询(作为字符串)并返回带有查询结果的JSON响应。这非常适合SOAtest,因为REST客户端可以进行查询以发送查询,而现有的JSON验证工具可以完成验证。
考虑下面的简单示例GraphQL查询:
query { users{ firstname lastname } }
预期的回报将类似于:
{ “data” : { “users” : [ { “firstname” : “John”, “lastname” : “Doe” }, { “firstname” : “Alicia”, “lastname” : “Smith” } ] } }
可以在Parasoft SOAtest中将同一查询作为REST客户端创建:
在SOAtest中,GraphQL查询作为名为“query”的字符串发送。响应以JSON返回,SOAtest可以轻松地在其流量查看器中解释和表示:
预期返回的值。显然,我们需要一种自动的方法来验证这些结果,并且SOAtest JSON断言器在这里很方便。
SOAtest使用通过其JSON声明器工具配置的声明来验证JSON响应。这是一个示例检查,以查看返回的名字是否为字符串“Luis”(我们知道这不是有效值)。
再次运行测试,测试失败:
如您所见,使用现有功能在SOAtest中直接测试GraphQL端点。
认证呢?这已经由SOAtest处理,并且现有的客户端身份验证工具也可以与GraphQL端点一起使用:
对于GraphQL,SOAtest带给REST、SOAP和其他API测试的好处仍然相同。专为适应现有测试基础架构而设计,Parasoft SOAtest通过帮助测试人员更智能地工作来加速测试,从而实现敏捷开发,而无脚本测试则可促进跨开发、测试、性能和安全团队的协作。
Parasoft SOAtest使测试易于创建、易于管理和协调以及易于运行和分析。除了GraphQL之外,SOAtest对120多种消息格式/协议的支持以及AI和机器学习的辅助下的测试生成使API测试变得更加容易。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
人工智能和机器学习赋能 API 和 Web 服务测试
Parasoft SOAtest with Load Test通过使用现有的功能测试来解锁早期的负载和性能测试
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢