接口测试的简介及测试用例的设计

2023-12-05

一,什么是接口

接口测试 是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

二,接口的作用

作为一个互联网公司,很多资源和信息需要内部共享或外部流通,那相关的数据就需要通过接口来传输。

三,接口理解

API接口是Application Programming Interface的简称,是一些预先定义的函数,包括接口地址、传入参数和返回参数。

站在非研发角度可以简单理解为,当需要访问某些数据,正常状态下传入合格参数,会收到该数据范围内的返回参数。

站在研发角度:

接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。

接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。

四,接口工具

1,postman   ---> Postman 的应用

是谷歌开发的一款接口测试软件,它使用简单,功能强大,能够发送任何类型的HTTP请求 (GET, HEAD, POST, PUT..),可以进行文件上传、响应验证、变量管理、环境参数管理,还可以批量管理和运行用例,并支持用例导出、导入,可以进行接口的自动化测试。

缺点是自动化断言不够强大,不能和jenkins、代码管理库进行持续集成测试。

2,jmeter

是一款100%纯Java编写的免费开源工具,主要用来做性能测试,但也可以做接口测试,配合后置处理器与断言,可以满足大部分的接口测试场景,JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本,通过jmeter+ant+jenkins可以实现接口和性能自动化测试。

3,soapUI

是一个开源测试工具,通过soap/http来检查、调用,实现Web Service的接口和性能测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。

五,接口的样子

1,可以参照微信小程序开发APIhttps://developers.weixin.qq.com/miniprogram/dev/api/

2,下图讲解接口的扭转

六,接口文档

接口说明:

接口功能:本接口用于获取用户的token信息 ---登录。

接口请求地址:

https://xingzoushamodewoniu.com/long/api/login

请求头 :

请求头 请求方式 说明
Content-Type application/json 请求方式

请求方式: POST

参数类型 :JSON

请求示例:绝大多数为json,格式自定

{
"account": "小白龙",
"password": "123456",
"clientId": "long",
"responseType": "code"
}

请求参数说明

字段名 字段说明 字段类型 是否必填
account 用户名 varchar(30)
password 密码 int(15)
clientId 客户编号 varchar(50)
responseType 响应类型 varchar(50)

响应示例

成功响应编码:

{
  "code": "200",
  "message": "OK",
  "data": {
    "code": "4dd529b3-c4b0-4066-a363-742c5b6b6e74_generate_token",
    "accessToken": "eyJhbGciOiJSUzI1NiJ9.eyJhY2NvdW50SWQiOiJVNjA3NkIwMTI0Q0VERkQwMDAxMTdFREU3IiwiZXhwIjoxNjM5NDY1NzYzLCJpYXQiOjE2MzkyMDY1NjN9.ZHkW6j6rfbyyRQ5ZSRW_Z1nRTiYqyiWgSINBEZA99UMw92H1eiy4JxxC6n3AIAcE3Y9j_p8ZNTtJWIsSlsFbOZfmAuOr2ih4oR0tpjCWLU1UTesVmn7tCkeTpbmjeNJolcd4X7knKIKuXyi88SC6ZIhMJRE1ZTI3eK4hJUCi6Rx50lcHvjV_HX2ZHqEly5wqvr_jQ0ZWXquNlGTrPRXofQ6cLawVea8Z_EnXermECQrjWpRelhKYyl2hlqGd48n46avHFAaxp3UZhy1TeE_xeLxYMaBOpUADcPaezSj2Q_Qbq4T24w83iV2JwGAKAVPMQgBjn68IYuucS-j7fxXqFQ",
    "accountId": "U6076B0124CEDFD000117EDE7"
  },
  "extra": null
}

响应参数说明

接口返回码 接口返回描述
200 成功
201 请求参数错误
202 密码错误

七、抓包工具抓取接口

借助工具(Fiddler、Charles、Proxyman、Wireshark、Tcpdump、控制台{F12})抓取以下内容

General

Request URL: https://xingzoushamodewoniu.com/long/api/login

Request Method: POST

Status Code: 200 OK

Remote Address: 127.0.0.1:7367

Referrer Policy: strict-origin-when-cross-origin

Response Headers
Access-Control-Allow-Origin: *

Connection: keep-alive

Content-Encoding: gzip

Content-Type: application/json; charset=utf-8

Date: Sat, 11 Dec 2021 07:14:39 GMT

Server: openresty

Set-Cookie: ac=ed09abaa400c19fff38a588d6c412c21; expires=Sun, 11-Dec-2022 07:14:39 GMT; Max-Age=31536000; path=/

Transfer-Encoding: chunked

Vary: Accept-Encoding

X-Powered-By: PHP/7.1.12

X-RateLimit-Limit-second: 80000

X-RateLimit-Remaining-second: 79004

Request Headers
Accept: application/json, text/plain, */*

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Connection: keep-alive

Content-Length: 134

Content-Type: application/x-www-form-urlencoded

Host: qac-qupost.qutoutiao.net

Origin: https://mp.qutoutiao.net

Referer: https://mp.qutoutiao.net/

sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: "macOS"

Sec-Fetch-Dest: empty

Sec-Fetch-Mode: cors

Sec-Fetch-Site: same-site

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36

Form Data
{

"account": "小白龙",

"password": "123456",

"clientId": "long",

"responseType": "code"

}

Response
{

"code": "200",

"message": "OK",

"data": {

"code": "4dd529b3-c4b0-4066-a363-742c5b6b6e74_generate_token",

"accessToken": "eyJhbGciOiJSUzI1NiJ9.eyJhY2NvdW50SWQiOiJVNjA3NkIwMTI0Q0VERkQwMDAxMTdFREU3IiwiZXhwIjoxNjM5NDY1NzYzLCJpYXQiOjE2MzkyMDY1NjN9.ZHkW6j6rfbyyRQ5ZSRW_Z1nRTiYqyiWgSINBEZA99UMw92H1eiy4JxxC6n3AIAcE3Y9j_p8ZNTtJWIsSlsFbOZfmAuOr2ih4oR0tpjCWLU1UTesVmn7tCkeTpbmjeNJolcd4X7knKIKuXyi88SC6ZIhMJRE1ZTI3eK4hJUCi6Rx50lcHvjV_HX2ZHqEly5wqvr_jQ0ZWXquNlGTrPRXofQ6cLawVea8Z_EnXermECQrjWpRelhKYyl2hlqGd48n46avHFAaxp3UZhy1TeE_xeLxYMaBOpUADcPaezSj2Q_Qbq4T24w83iV2JwGAKAVPMQgBjn68IYuucS-j7fxXqFQ",

"accountId": "U6076B0124CEDFD000117EDE7"

},

"extra": null

}

以上是通过抓包工具或者浏览器的控制台(检查、F12)中获取的数据,这个接口经过了上图的流程,最终实现登录成功。

八,接口用例设计

接口测试的原理就是模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。

接口测试采用的方法其实与黑盒测试一致的,甚至可以把接口测试理解为没有界面的功能测试。只不过接口测试的测试点更多一些,除了界面上需要验证的各种功能点,还包括接口的安全、接口的性能等。

一般测试用例的设计要从单接口参数的校验到整个业务功能点的验证,还可以验证一些安全性和异常情况。

接口用例设计点基本原则如下:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试的简介及测试用例的设计 的相关文章

  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

    Python MongoDB 排序 对结果进行排序 使用 sort 方法对结果进行升序或降序排序 sort 方法接受一个参数用于 字段名 一个参数用于 方向 升序是默认方向 示例 按名称按字母顺序对结果进行排序 import pymongo
  • Python 中多态性的示例和类的继承多态性

    单词 多态 意味着 多种形式 在编程中 它指的是具有相同名称的方法 函数 操作符 可以在许多不同的对象或类上执行 函数多态性 一个示例是 Python 中的 len 函数 它可以用于不同的对象 字符串 对于字符串 len 返回字符的数量 示
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    C 变量 变量是用于存储数据值的容器 在 C 中 有不同类型的变量 用不同的关键字定义 例如 int 存储整数 没有小数点的整数 如 123 或 123 double 存储浮点数 有小数点 如 19 99 或 19 99 char 存储单个
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结

随机推荐