IT科技

用Mockoon测试API交互

时间:2010-12-5 17:23:32  作者:IT科技   来源:数据库  查看:  评论:0
内容摘要:​译者 |布加迪审校 |孙淑娟自动处理重复的任务是系统管理员日常工作的核心部分。这种自动化越来越需要使用基于Web的API ,以便跨设备、云提供商或软件即服务SaaS)工具来协调活动。无论编写的是sh

​译者 | 布加迪

审校 | 孙淑娟

自动处理重复的测试任务是系统管理员日常工作的核心部分。这种自动化越来越需要使用基于Web的测试API ,以便跨设备、测试云提供商或软件即服务(SaaS)工具来协调活动。测试无论编写的测试是shell脚本还是与Web服务交互的Ansible剧本,您都需要彻底测试代码。测试

模拟API的测试能力是这个测试过程的重要部分。模仿真实的测试API,以便您开发和测试API交互。测试虽然一些工具和供应商提供实时沙盒环境,测试但能够在本地模仿API对于高级测试场景非常有用,测试比如修改响应的测试正文或HTTP状态代码。如果您正处于自行开发API的测试初始阶段,还需要在编写代码之前快速构建端点。测试

Mockoon就是测试支持这么做的一种选择。Mockoon是一款出色的开源工具,高防服务器有丰富的用户界面,可用于快速构建模拟API,并在本地机器上运行它们。

安装Mockoon

您可以通过官方软件包在Windows、macOS和Linux上安装Mockoon,包括AppImage和RPM格式。Mockoon安装完毕后,官方文档为新用户提供了出色的​​教程​​。

Mockoon拥有图形界面和命令行接口(CLI)实用程序,本文着重介绍如何使用图形界面。

创建环境

在Mockoon中处理新项目的第一步是创建一个新环境。环境让您可以将API端点分成逻辑组。每个环境也可以在自己的端口上运行,使您能够在同一主机上模拟多个API。环境保存为JSON文件,可以轻松导入、导出并与代码一起保存。

只要点击如下所示的“新建环境”图标,即可创建一个环境。它将提示您选择保存环境JSON文件的位置。环境创建后,您可以开始为它添加路由。

图1

添加基本的API路由​

大多数API交互都涉及一个简单的请求和响应循环,该循环常常返回JSON对象。站群服务器开始使用Mockoon前,建立一条简单的API路由。点击界面中的+号,即可为环境添加路由。

我在/api/v1/healthcheck处添加了返回200 OK状态码的路由,如下例所示。该示例还返回JSON响应,含有关于健康状况检查的信息:

图2

一旦添加路由并启动服务器(或重新启动,如果它已经在运行),端点就可以访问了:

图3

生成随机响应数据

API响应正文中的静态值涵盖许多基本的测试用例。Mockoon也可以在响应正文中生成随机数据,用于更真实的测试。​​Faker.js库​​用于生成随机数据。随机生成的值可以在响应正文中进行模板化,并返回给请求者。

在下面示例中,我添加了另一个端点:/api/v1/hosts/:id。:id表示这是一个URL参数。响应正文返回JSON对象,该对象包含附有随机生成数据的多个字段。

图4

使用此配置,针对API端点的每次调用都显示一组不同的b2b信息网假数据:

图5

注意:Mockoon实现的Faker.js版本可能不是最新的,因此在编写模板时务必确保查看的是正确版本的Faker文档。

添加身份验证和规则

大多数API端点都需要身份验证,常常采用含有API令牌的HTTP标头这种形式。确保您的工具能够正确处理来自端点的身份验证失败对于开发强大的自动化非常重要。Mockoon允许您定义可用于返回不同响应的规则,比如标头需求。

规则是在路由的“规则”选项卡上定义的。下面的示例使用两个规则扩展了/api/v1/hosts/:id端点。第一条规则(响应 1)返回HTTP 401 Unauthorized。如果没有其他规则与请求匹配,就使用第一条规则。

图6

第二条规则(响应 2)要求请求含有值等于40650a76的X-Auth-Token HTTP标头。任何与此规则匹配的请求都会收到200 OK和来自上一个示例的JSON响应。

图7

这些规则导致任何在X-Auth-Token标头中不包含正确值的请求失败,并返回HTTP 401 Unauthorized。拥有正确令牌的请求将继续接收数据,如下所示:

图8

这是使用规则根据请求属性控制响应行为的一个基本示例。

Mockoon的规则引擎功能强大,能够创建非常高级的场景。如果查阅​​官方文档​​,可以最充分地了解它。

原文标题:​​Test API interactions with Mockoon​​​,作者:Anthony Critelli​

台式电脑升级设计教程(轻松学会升级你的台式电脑,让它重焕新生)
ubuntu搭建nginx+scala+play 2.0运行环境学scala有段时间了,最近用scala做了个社区:,开始买了个内存512的vps,但是编译都不通过,jvm提示无法为对象分配空间,囧,升级到1G,经过3个小时的奋战,终于配置成功了,顺便也记录下。1、安装nginx,mysql编译什么的网上一大堆,就不细说了,大家可以google下。2、安装JDK注意:ubuntu用户请务必将OpenJDK替换成sunJDK[ubuntu用户]01sudo add-apt-repository ppa:ferramroberto/java02#假如上面命令提示:command not found,就输入如下命令:sudo apt-get install python-software-properties0304sudo apt-get update05sudo apt-get install sun-java6-jre sun-java6-plugin06sudo apt-get install sun-java6-jdk0708update-alternatives --config java09#选择jdk,输入上面命令后会有3个选项,选择第2个选项10 Selection    Path                                      Priority   Status11------------------------------------------------------------12* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode13 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode14 2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode[非ubuntu用户]http://www.oracle.com/technetwork/java/javase/downloads/index.html解压后我把文件移动到了/usr/local/下修改/etc/profile文件1export JAVA_HOME=/usr/local/jdk1.7.0_052    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar3export PATH=$PATH:$JAVA_HOME/bin3、下载playframework文件[cc lang=c]http://www.playframework.org/[/cc] 3.1、安装scala,只运行play2.0的话是可以不用安装的。1http://www.scala-lang.org/   #下载debin包,假如安装的openjdk的话可能出现缺少 janic2    dpkg -I scala-2.9.2.deb 3.2、安装sbt https://github.com/harrah/xsbt/wiki/Getting-Started-Setup 我是安装ubuntu的方法安装的,记得别忘了下载,不然会提示找不到sbt包 http://apt.typesafe.com/repo-deb-build-0002.deb1dpkg -I repo-deb-build-0002.deb2apt-get update3apt-get install sbt 安装过程中可能需要点时间,完成后测试进入scala目录测试 sbt4、启动play2.0项目1play2start -Dhttp.port=90005、nginx设置代理01    server02 {03 listen       80;04 server_name *.cn-scala.com cn-scala.com;0506 location /static {07 root     /static/public;08}09 location  / {10 proxy_pass    http://127.0.0.1:9000;11 proxy_set_header Host $host;12 proxy_set_header X-Real-IP $remote_addr;13}14 }
copyright © 2025 powered by 编程之道  滇ICP备2023006006号-34sitemap