在我们的项目中,我们需要自动化用Node.js编写的API,它使用GraphQL和REST,因为我们必须开发一个必须支持(Sync,Async调用)的API Automation Framework。
设计模式是否有良好的设计模式来设置API自动化框架?
答案 0 :(得分:1)
您可以考虑使用Cucumber.js以及一个流行的REST客户端软件包。
Cucumber.js是行为驱动开发框架之一,可以使API测试可读且更易于管理。
以下文章比较了几个可用于自动化RESTful API的包
5 Ways to Make HTTP Requests in Node.js
API测试以及Cucumber.js框架有一些samples。
另外,要创建测试脚本,请考虑将CukeTest创作与Postman一起使用(提供良好的调试目的)
答案 1 :(得分:1)
严格地说,仅涉及设计模式:您可以使用Builder模式并得到单一责任原则的支持。
个人而言,在我们的组织中,我们使用带有构建器模式方法的 RestAssured 驱动的框架。
作为该结构的示例,我们有数据传输对象来保存API的请求和响应。然后,我们有专门用于实现API的实现类。
如果您打算像我们一样使用 TestNG ,则可以将测试类与单独的DataProvider
类一起使用,这有助于代码分离和更轻松的调试。
答案 2 :(得分:0)
对于GraphQL API的集成测试,我使用了graphql-tester。
设计将非常适合您的项目。
如果您拥有自己的API服务器,
一种。调用API。
b。您可以点击后端(DB)并检查数据库中期望的字段是否已更新。
C。验证HTTP响应。
如果您为第三方API编写了包装器,请理解第三方API的响应并使用模拟服务器/ JSON服务器模拟它们。
对于集成测试(黑盒),在REST / GraphQL上无关紧要(一切都是HTTP调用)。尝试选择一种可以获取所有客户端(DB,HTTP等)的语言。
具有健全的测试用例,就像在启动测试用例之前所有服务都应已启动并正在运行。
答案 3 :(得分:0)
您可以使用mocha.js。根据官方网站的说法,“ Mocha是一个功能丰富的JavaScript测试框架,可在Node.js和浏览器上运行,从而使异步测试变得简单而有趣。Mocha测试以串行方式运行,可以灵活,准确地报告,同时将未捕获的异常映射到正确的测试用例。托管在GitHub上。”
为什么要选择它: Mocha可以在node.js或浏览器中运行。与Jasmine等其他JavaScript测试框架相比,您会发现Mocha对异步测试的处理是选择它的关键因素。在测试API时,我们需要向端点发送一些数据,然后使用返回的数据来调用另一个端点。例如,我们需要先获得一个用户,然后获取该用户的ID,以获取属于该用户的所有位置。
Chai 与Jasmine不同,必须使用附加的断言库来补充Mocha。 Chai是一个断言库,可让您选择最喜欢的断言接口,包括“声明”,“期望”和“应该”。
为什么要选择它:尽管Mocha可以与任何断言库一起使用,而Chai可以与任何javascript测试框架一起使用,但是许多javascript开发人员选择一起使用它们。我们可以使用Chai的“ expect”界面将自然语言断言链接在一起,因此我们可以彻底测试从API端点返回的JSON。
参考:更多see this