just-api 是基于配置的测试,同时支持基于jsonpath jsonschema 的数据校验,
对于数据的请求只集成hook,支持测试失败重试、测试报告、graphql api 测试。。。。

使用docker-compose 运行

项目初始化

参考项目 https://github.com/rongfengliang/just-api-basic-test

  • yarn
yarn init -y
  • 添加依赖
yarn add just-api
  • 配置npm scripts
{
"name": "just-api-project",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"just-api": "^1.2.0"
},
"scripts": {
"test":"just-api",
"report":"just-api --reporter html,json"
}
}

创建基本项目

just-api 有默认的测试运行目录,默认是当前目录的specs 可以在运行的时候修改

  • 测试定义
参考项目 specs/starwars_service.yml,比较简单就是指定测试接口地址,测试request response 以及数据
校验规则
meta:
name: "星球大战测试"
configuration:
scheme: "https"
host: "swapi.co"
base_path: "/api"
specs:
- name: "get Luke Skywalker info"
request:
path: "/people/1/"
method: "get"
response:
status_code: 200
headers:
- name: "content-type"
value: !!js/regexp application/json
json_data:
- path: "$.name"
value: "Luke Skywalker"
  • 运行
yarn test
  • 生成报告
yarn report
  • 效果

docker构建支持

比较简单使用nginx 做为报告的显示,同时使用泛域名服务支持虚拟主机

  • Dockerfile (多阶段构建)
FROM node:10.7-alpine as build-env
WORKDIR /app
COPY . /app
RUN npm install -g yarn
RUN yarn
RUN yarn report && cp report.html /tmp/index.html FROM openresty/openresty:alpine
COPY nginx.conf usr/local/openresty/nginx/conf/
COPY --from=build-env /tmp/index.html /usr/local/openresty/nginx/html/index.html
COPY --from=build-env /app/app.html /usr/local/openresty/nginx/html/app.html
EXPOSE 80
EXPOSE 443
  • docker-compose
version: "3"
services:
web:
build: ./
ports:
- "8080:80"
  • nginx 配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
server {
listen 80;
server_name localhost;
charset utf-8;
root html;
location / {
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name 127.0.0.1.easylify.com;
charset utf-8;
root html;
location / {
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name app.127.0.0.1.easylify.com;
charset utf-8;
root html;
location / { index app.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

说明

测试比较简单,实际有好多特性比如hook,cookies header 处理。。。。都是比较方便的http 测试要用到的,同时支持graphql 的测试。。。

参考资料

https://github.com/kiranz/just-api
https://github.com/rongfengliang/just-api-basic-test

 
 
 
 

使用just-api 进行接口测试的更多相关文章

  1. API测试-接口测试基础(1)

    由于自己想学习API方面的测试,但是市面上搜不到相关的图书可以系统学习,网上的内容又零零散散,适合有点API开发基础的人去搜索.为了方面新手学习API测试,现在整理了他人的宝贵经验和自己的学习心得,尽 ...

  2. Api接口测试总是似懂非懂,只因这个原理没搞清楚

    ​ 前言 掌握了http协议,就掌握了接口测试 笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作.读者可能照猫画虎成功了,也可能操作失败了但不知为何出错. 因 ...

  3. 一 APPIUM基本理论知识

    1.APPIUM介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用.所谓的“移动原生应用”是指那些用 iOS SDK 或者 A ...

  4. postman接口功能测试

    前言                                                         之前还没实际做过接口测试的时候呢,对接口测试这个概念比较渺茫,只能靠百度,查看各种 ...

  5. Appium基础一:Appium概念

    1.Appium介绍: Appium是一款开源跨平台(IOS和Android平台)支持多种开发语言(java.python等)进行测试Native/Web/Hybrid的Android/iOS App ...

  6. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

  7. 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解

    本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 在上一篇文章为大家介绍了响应式IO模型和WebClient的基本 ...

  8. 多测师讲解自动化_rf框架搭建_高级讲师肖sir

    robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面).  Wxpython  pip(在线下载) . setuptools(在线安装) . 第三方 ...

  9. 多测试讲解_009肖sirRF自动化框架安装教程

    robot framework:自动化测试框架 Python3.7 RIDE(可视化界面).  Wxpython  pip(在线下载) . setuptools(在线安装) . 第三方库 第三方库:s ...

  10. python+requests+unittest API接口测试

    黑熊再网上查找了下接口测试相关的资料,大都重点是以数据驱动的形式,见用例维护在文本或表格中,而没有说明怎么样去生成想要的用例, 问题: 测试接口时,比如参数a,b,c,我要先测a参数,有(不传,为空, ...

随机推荐

  1. English trip -- VC(情景课)1 D

    Read 阅读 Welcome! Meet our new student. His first name is Ernesto.  欧内斯托 His last name is Delgado. 德尔 ...

  2. 20170708xlVBA添加新产品修改公式

    Sub ControlInsertProduct() Dim Wb As Workbook Dim OneSht As Worksheet Dim Arr As Variant Dim i As Lo ...

  3. Sereja and Table CodeForces - 425B (暴力,状压)

    大意: 给定01矩阵, 求翻转尽量少的数字, 使得所有0或1的连通块为矩形, 若至少要翻转超过k次, 输出-1

  4. protobuf3.5.1使用的简单例子

    前言 1. 什么是protobuf Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,平台无关 ...

  5. JavaScript学习总结(五)——Javascript中==和===的区别

    一.JavaScript"=="的作用 当==两边的内容是字符串时,则比较字符串的内容是否相等. 当==两边的内容是数字时,则比较数字的大小是否相等. 当==两边的内容是对象或者是 ...

  6. hidden="hidden",display:none, visibility:hidden 三者的区别

    三者都可以实现隐藏元素的效果 1:display:none 就是把元素隐藏,即在页面上看不到这个元素,并且不占据任何位置 2:hidden="hidden"在页面展示出来效果跟di ...

  7. WEBSERVICE-CXF服务端代码

    Spring + cxf 发布webservice 依赖的jar包 WEB.xml的配置 applicationContext.xml配置   部署在Tomcat中启动   出现的问题         ...

  8. hadoop kafka install multi-borker (7)

    multi-borker function like cluster technology First we make a config file for each of the brokers (o ...

  9. 软工实践团队项目-"智能聊天机器人"简介

    "智能聊天机器人"项目 目前已确定的团队人员:张扬.俊彦.韫月.地秀.泽波.李翔.文婧.俞明.加伟(排名不分先后) 队伍已满,没有再招人的打算(#^.^#) 我们的想法 你有用过智 ...

  10. Spring学习笔记之Container overview

    The Spring IoC container