在我看来接口测试相对其他类型的测试是比较简单的。对于最常见的HTTP接口,只需要知道接口的 URL方法参数类型返回值 ... 就可以对接口进行测试了。

apifox

如果你是入门级选手,那么apifox应该很适合你,它是一款类似postman的接口测试工具。而且功能也很强大,定位 Postman + Swagger + Mock + JMeter。你值得尝试。

为什么不postman? 嗯,你说的都对!

HttpRunner

如果你不想用工具,也不想写代码。想更加简单高效的编写接口测试用例,那么HttpRunner2.x 就很适合你了。

{
"config": {
"name": "testcase description",
"variables": {},
"verify": false
},
"teststeps": [
{
"name": "/api/v1/hello/",
"request": {
"url": "http://127.0.0.1:8000/api/v1/hello/",
"method": "GET"
},
"validate": [
{"eq": ["body.code", 10200]},
{"eq": ["body.message", "success"]}
]
}
]
}

httpRunner已经更新3.x,HtppRunner 3.x还支持写代码了,还支持接口性能测试。我知道了,谢谢你的提醒!

Robot Framework

Robot Framework是一款通用了的测试框架,支持各种Library,如果你对它很熟悉的话,拿来做接口自动化手到擒来!

我在网易云课堂有免费视频哦!

https://study.163.com/course/introduction/1004056051.htm

JMeter

JMeter是用来做性能测试的,在当前大部分系统都前后端分离的情况下,服务端性能 ~= 接口性能。

那么我把并发数设置成1,那么它就变身成为了接口自动化工具。

设置成100, 它又变成了接口性能工具,在功能/性能之间来回切换的大佬。可盐可甜!

Gauge

Gauge是基于BDD测试框架。拿它来做接口测试,怎么说呢,不是不行。就像妹子叫一个程序员修电脑。

  • 定义行为文件(测试数据)
login interface
===============
this is login api test login
---------- * test post "/login" api
|username | password | code | message |
|----------|----------|------|---------|
| null | |10103|username or passwrord is null|
| | null |10103|username or passwrord is null|
| error |error |10104|username or password error|
| admin |a123456 |10200|login success|
  • 执行测试
from getgauge.python import step
from .utils.base import Base
import requests @step("test post <url> api <table>")
def test_post_request(url, table):
username = [str(user)
for user in table.get_column_values_with_name("username")]
password = [str(pawd)
for pawd in table.get_column_values_with_name("password")]
code = [int(code) for code in table.get_column_values_with_name("code")]
message = [str(msg)
for msg in table.get_column_values_with_name("message")]
for i in range(len(username)):
data = {"username": username[i], "password": password[i]}
r = requests.post(Base.url + url, data=data)
result = r.json()
print(result)
assert result["code"] == code[i]
assert result["message"] == message[i]

看不懂?!没关系,妹子也看不懂你是如何把电脑修好的,总之,看上去很厉害的样子就对了。

httpx

如果你喜欢写代码,还有什么是比httpx库更简单好用的吗? httpx本身只是一个HTTP测试库而且,要做自动化还需要单元测试框架配合,如 pytest

import httpx

def test_case():
r = httpx.put('http://httpbin.org/put', data = {'key':'value'})
assert r.status_code
assert r.json() is dict()

有人高喊:你一定是偷了Requests家东西!httpx 涨红着脸说:参考不能算偷,偷....程序员的事情,能算偷吗?接连便是高大上的话,什么"支持异步了,下一代HTTP库...", 引得众人都哄笑起来。

还不服是吧!?就凭httpx 只要敲5个字符,而requests 要8个字符,就是httpx赢!

MeterSphere

metersphere是一个开源的测试平台,由商业公司维护,比起一些个人的测试平台项目,稳定性和易用性上面做的还是不错的。

你完全可以基于MaterSphere做二次开发,它用的非常主流的 Java(spring) + JavaScript(vue.js) 的技术开发。

总结

接口测试的工具还有很多,本文相当于每种玩法都介绍了一种。不管用哪种工具,只要足够精通,那么都可以解决工作中的大部分问题。

接口测试的N中玩法的更多相关文章

  1. ExceptionLess新玩法 — 记日志

    ExceptionLess 之前也有介绍过这个框架,其实网上也有很多的资料,无论是部署还是一些详细的高级玩法都讲的很清楚也很棒,博主也学习了一些他们的博文,因为很多的东西比如本地部署别人已经写了,我再 ...

  2. 【第1期】腾讯云的1001种玩法征集,Ipad mini和Kindle 等你拿!(文章评审中)

    版权声明:本文由阁主的小跟班原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/695994001482226944 来源:腾云 ...

  3. 【转载】总结一下Android中主题(Theme)的正确玩法

    http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...

  4. openresty+lua在反向代理服务中的玩法

    openresty+lua在反向代理服务中的玩法 phith0n · 2015/06/02 10:35 0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了 ...

  5. Word 查找替换高级玩法系列之 -- 把论文中的缩写词快速变成目录下边的注释表

    1. 前言 问题:Word写论文如何把文中的缩写快速转换成注释表? 原来样子: 想要的样子: 2. 步骤 使用查找替换高级用法,替换缩写顺序 选中所有文字 打开查找替换对话框,输入以下表达式: 替换后 ...

  6. 聊聊 C# 和 C++ 中的 泛型模板 底层玩法

    最近在看 C++ 的方法和类模板,我就在想 C# 中也是有这个概念的,不过叫法不一样,人家叫模板,我们叫泛型,哈哈,有点意思,这一篇我们来聊聊它们底层是怎么玩的? 一:C++ 中的模板玩法 毕竟 C+ ...

  7. [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法

    1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下 ...

  8. 十五天精通WCF——第九天 高级玩法之自定义Behavior

    终于我又看完了二期爱情保卫战,太酸爽了,推荐链接:http://www.iqiyi.com/a_19rrgublqh.html?vfm=2008_aldbd,不多说,谁看谁入迷,下面言归正传, 看看这 ...

  9. 《Invert》开发日志01:核心玩法设计

    前面提过,这个游戏的核心玩法基于我做的第一个Unity游戏,名字就叫<Invert>,现在在应用宝上面还能搜到.不过那个游戏也不是我原创的,它的玩法设计来自github上的一个开源项目(h ...

随机推荐

  1. Linux下找出吃内存的方法总结

    Linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」. 现在想要查询该进程占用的内存大小.linux命令行下有很多的工具进行查看,现总结常见的几种 ...

  2. WPF 基础 - Binding 的 数据更新提醒

    WPF 作为一个专门的展示层技术,让程序员专注于逻辑层,让展示层永远处于逻辑层的从属地位: 这主要因为有 DataBinding 和配套的 Dependency Property 和 DataTemp ...

  3. This is my first blog----文件操作基本流程

    一,文件操作基本流程. 计算机系统分为: 计算机硬件, 操作系统, 应用程序三部分 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件 ...

  4. Codeforces Round #548 C. Edgy Trees

    题面: 传送门 题目描述: 给出有n个节点的树,整数k.题目要求找长度为k,符合规则(good序列)的"点序列"(由节点构成的序列)个数有多少?规则如下: 1.走一条出发点为a1, ...

  5. springboot 配置文件application

    application.properties # ----------------------------------------# 核心属性# --------------------------- ...

  6. ubuntu修改默认启动内核

    一.序言 新换的笔记本由于太新的主板芯片,驱动还没有完善.每次升级系统内核都要小心谨慎.经常发生部分硬件驱动失败的事情.系统Ubuntu 20.04.2 LTS x86_64 ,我现在使用的两个版本的 ...

  7. java例题_08 输入特定数字求和(n个a位数递增求和问题)

    1 /*8 [程序 8 输入数字求和] 2 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字.例如 2+22+222+2222+22222(此时共有 5 个数相加), ...

  8. JS实现鼠标点击爱心&绘制多边形&每日一言功能

    本篇文章主要介绍我的个人博客 程序猿刘川枫 中页面使用的美化功能(基于JS实现): 1.鼠标点击出现不同颜色爱心特效 2.页面浮动多边形跟随鼠标移动 3.每日一言功能 1.鼠标点击出现爱心特效 经常在 ...

  9. 别人 echo 、你也 echo ,是问 echo 知多少?-- Shell十三问<第三问>

    别人 echo .你也 echo ,是问 echo 知多少?-- Shell十三问<第三问> 承接上一章所介绍的 command line ,这里我们用 echo 这个命令加以进一步说明. ...

  10. ElasticSearch创建文档

    1. 新建文档 支持自动生成文档 ID 和指定文档 ID 两种方式 通过调用 "post/users/_doc" ,系统会自动生成 document id 使 用HTTP PUT ...