接口测试的测试用例该怎么写呢?

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

模块接口测试是单元测试的基础。它主要测试模块的调用与返回。经常需要编写一些桩模块与驱动模块。

主要测试要点如下:

  • 检查接口返回的数据是否与预期结果一致。
  • 检查接口的容错性,假如传递数据的类型错误时是否可以处理。
  • 接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
  • 接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。
  • 接口的安全性

WEB 接口测试

web 接口测试又可分为两类:服务器接口测试和外部接口测试。

服务器接口测试:是测试浏览器与服务器的接口。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过 http 协议的 get 与 post 请求来实现前后端的数据传递。这也可认为是接口测试。外部接口测试:这个很典型的例子就是第三方支付,比如在我们应用中在充流量时,交话费时,都会调用第三方支付接口。主要测试要点如下:请求是否正确,默认请求成功是 200,如果请求错误也能返回 404、500 等。

检查返回数据的正确性与格式;json 是一种非常常见的格式。

接口的安全性,一般 web 都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。

接口的性能,这直接影响用户的使用体验。测试用例设计与原则

因为在实际工作中测试的接口都是基于 HTTP 协议的,所以下面的测试用例及原则也是针对此类接口。

测试用例正面测试用例:

  • 覆盖所有的必选参数
  • 组合可选参数
  • 参数边界值
  • 如果参数的取值范围是枚举变量,需要覆盖所有枚举值
  • 还应考虑实际业务应用场景,去设计输入参数的组合。(这些用例可用来测试功能,作为 SMOKE 用例。也可将来用于压力测试模拟实际业务场景,但要注意保证用例的独立性,因为压力测试是多线程的。比如我们测试 ACCOUNT 创建接口,NAME 是不能重的,在写测试用例时,给 NAME 赋值时可以加一个时间戳, 这样用例在多线程并发测试时也不会有问题)

负面测试用例:

  • 空数据
  • 包含特殊的字符
  • 越界的数据
  • 错误的数据

验证点:

  • status code(正常情况下,所有请求都应该返回 200)
  • 响应信息数据结构(目前大多数情况下,返回信息都是 JSON, 我们应该验证相应的结构当数据信息发生改变时)
  • 验证结点的类型
  • 验证结点的值(主要是针对固定的值或者值遵循某些规则,我们能知道预期的结果的)
  • 对于列表,应该根据请求参数,也应该验证列表的长度是否与期望值一致
  • 负面测试用例,应验证 ERROR INFO 是否与实际相匹配

测试原则

测试应该是独立的、可读的、抗变的、可维护的,其实这也是所有自动测试应该遵循的原则

  • 每个测试用例都是独立的
  • 测试用例都是可重复运行的 (这主要是说一些测试数据不能写死,不同的环境数据可能不同。在实际工作中,解决方案有二:自已创建所需要的数据,比如你要测试接口需要输入参数 ACCOUNTID,你可以先调用创建 ACCOUNT API, 然后从响应值拿到 ACCOUNTID, 当你测试完你要测的接口后,再把新建的 ACCOUNT 删除,也就是说一个测试用例分了三步。另外一种方法就是读取数据库,从数据库获取数据,这种方法在测试开发与测试环境还 OK,但如果测线上环境就比较困难了,因为我们不能随意更新上面的数据,也不能放过多的测试数据在上面。因此我个人比较推崇第一种方法,虽然增加开发用例的工作量,但一劳永逸)
  • 测试能被运行在不同的环境里(平常测试环境至少会分 DEV/TEST/STAGING/ONLINE,我们在测试过程中,应该把域名,token/apikey 等应放在一个变量里,当切换环境时,我们只需改变变量的值即可
  • 测试数据与业务相分离(测试数据包括参数接口数据/ 测试执行所需要的系统数据)
  • 尽量统一共用的测试环境变量
  • 测试完成后,要删除不必要的测试数据。
关于接口测试的知识,你了解多少?

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


在此特意为大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面,涵盖功能测试、Python编程语言,接口测试、UI自动化测试、性能测试......包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2022软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..关注下方公众号免费获取~

相关推荐

2022年简历石沉大海,别投了,软件测试岗位饱和了....

各大互联网公司的接连裁员,政策限制的行业接连消失,让今年的求职雪上加霜,想躺平却没有资本,还有人说软件测试岗位饱和了,对此很多求职者深信不疑,因为投出去的简历回复的越来越少了。另一面企业招人真的变得容易了吗?有企业HR吐槽,简历确实比以前多了好几倍,其实是变相的增加了招聘难度,以前是从10份中找一个合适的,现在是从100份中找一个合适的,合适的依然那么少!...

1万+

APP测试要点汇总!一篇搞定!

软件客户端的应用形态主要为:web网站、PC客户端、APP、小程序。APP项目的测试点,跟web项目的测试点是存在差异性的。本篇文章将详细罗列APP测试要点,及web区别总结。

1169

【性能测试】一文3000字从0到1详解性能问题定位(建议收藏)

性能问题在软件开发中是一个常见的挑战。当用户遇到应用程序运行缓慢或卡顿的情况时,往往是由于性能问题造成。性能问题定位是解决这些问题的关键步骤之一,它能帮助我们找出造成应用程序性能差的根本原因。本文将从0到1详细且规范地介绍性能问题定位的过程。

1039

全链路压测:性能测试的流量录制和回放

一般在软件发布之前,都会经过单元测试, 接口测试, 集成测试, 性能测试等。但是这些测试往往都是基于自己定义的测试数据集合,很可能会有漏网之鱼,那么在软件上线之后,在线上流量冲击下,会出现各种之前测试中并没有发现的问题。这是因为线上的流量数据比测试的数据更加多样性,并且随着用户数量的增加,线上流量的也越来越大,更多的隐藏问题也会暴露,比如并发处理不当导致的Crash。那么我们有什么方法能够在上线之前完成这些测试呢?就是借助流量回放工具。GoReplay工具是go语言编写的一个http实时流量复制工具。

1256

接口自动化进阶 —— Pytest全局配置pytest.ini文件详解!

pytest.ini 是 Pytest 的全局配置文件,用于自定义测试运行的行为和规则。通过配置 pytest.ini,可以避免在命令行中重复输入参数,提升测试的效率和一致性。

1488

自动化测试面试必备:Top 10 技巧助你轻松过关!

自动化测试面试必备:Top 10 技巧助你轻松过关、自动化测试工程师在软件开发过程中扮演着至关重要的角色,而面试则是展示你技能和经验的重要环节。为了帮助你顺利通过自动化测试面试,我们整理了以下10个必备技巧,助你在面试中脱颖而出。

672

一文3000字从0到1带你接口测试基础知识【建议收藏】

接口测试是软件测试中的一个重要环节,它主要用于验证系统各个组件之间的相互通信是否正确,以及系统对外提供的接口是否符合预期的功能和性能要求。下面我将带你从零开始,详细介绍接口测试的基础知识。

1012

selenium教程 —— css定位!

​css定位说明、selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法、css定位优点、语法简洁、对比其他定位方式,定位效率更快、 对比其他定位方式,定位更稳定​

1299

接口自动化测试 —— 接口安全测试详解(建议收藏)

引言: 接口自动化测试是现代软件开发过程中不可或缺的一部分,而在测试中,接口安全测试更是至关重要的环节。本文将从0到1详细且规范的介绍接口安全测试的概念、方法和最佳实践,帮助读者全面了解如何进行接口安全测试并提供可信赖的接口服务。

725

高阶测试开发必备技能: k8s入门!

现在稍微有点规模公司都是基于docker容器化部署技巧,K8s现在主流,应用最广的容器集群管理技术。k8s全称kubernetes(首字母为 k、首字母与尾字母之间有 8 个字符、尾字母为 s,所以简称 k8s),基于Docker容器集群环境管理问题,是谷歌保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。

647

渗透测试怎么做?看看大神一次完整的渗透测试实战!

渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报告,提供给我们的客户。客户根据我们撰写的测试报告,对网站进行漏洞修补,以防止黑客的入侵!

972

UI自动化测试太头疼?Playwright让你轻松搞定!

随着软件开发的日益复杂和用户期望的不断提高,UI(用户界面)自动化测试变得越来越重要。Playwright是一个开源的自动化测试工具,可以用于测试Web应用程序,支持多种浏览器,并提供强大的自动化测试功能。本文将介绍Playwright的基本概念,并通过实际示例演示如何执行UI自动化测试。

1229

接口自动化入门 —— JSON中的万能密码--JSONPath解析!

1. JSONPath 的核心概念、JSONPath 是一种查询语言,用于从 JSON 数据中提取特定的字段或值。它的表达式语法类似于 XPath,支持多种操作符和函数,能够快速定位和提取数据。‍

1318

接口自动化入门 —— Jmeter实现在接口工具中关联接口处理方案

1. JMeter 接口关联处理的核心概念、接口关联是指在多个接口请求之间共享数据,例如将一个接口的返回值作为另一个接口的输入参数。常见的场景包括:使用登录接口返回的 Token 作为后续接口的认证信息。将一个接口返回的 ID 作为另一个接口的请求参数。‍

1660

接口自动化入门 —— swagger/word/excelpdf等不同种类的接口文档理解!

在接口自动化测试中,接口文档是开发和测试人员理解接口功能、参数和交互方式的重要依据。常见的接口文档类型包括Swagger、Word、Excel和PDF。

1066

接口自动化入门 —— Http的请求头,请求体,响应码解析!

在接口自动化测试中,HTTP请求头、请求体和响应码是核心组成部分。理解它们的作用、格式和解析方法对于进行有效的接口测试至关重要。以下是详细解析:

1372

Requests库实战:手把手教你Python接口自动化!

在 Python 中进行网络请求是日常开发中的一个常见任务,而 requests 库是处理这类任务的一种强大工 具。requests 提供了简单而灵活的接口,使得发送 HTTP 请求和处理响应变得非常容易。在这篇文章中,我们将深入研究如何使用 requests 库执行各种网络请求,处理响应以及利用一些高级功能。

652

Python接口自动化之断言封装!

该框架支持两种断言方式,相等和包含。先看一下断言的yaml文件编写规范:

645

Selenium元素定位太难搞?这些坑我替你踩过了!

1.非select类下拉框、在非select类下拉框这里遇到了两种需求,一种是可输入字符,一种是不可输入字符、输入部分字符按照智能提示点选、这种下拉框允许输入字符,沟通后确定输入字符如出现多个选项则点选第一个

928

如何使用Selenium处理Cookie?

01、cookie介绍、HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。

1752

Web测试,小程序测试,app测试有哪些区别

Web测试、小程序测试和APP测试之间的还是存在显著的区别的,大概有以下几点:

961

2024性能测试入门基础知识【建议收藏】

性能测试是一种软件测试的类型,主要用于评估软件系统的性能和稳定性今天本文从4个方面来介绍性能测试入门基础知识

802

客户端SDK测试是什么?如何测?

客户端SDK是为第三方开发者提供的软件开发工具包,包括SDK接口、开发文档和Demo示例等。SDK和应用之间是什么关系呢?以云信即时消息服务为例,如下图所示,应用客户端通过调用云信SDK接口,进行消息等数据查询存储等操作,或通过协议与云信服务器间进行通信。

1163

【性能测试】一文3000字从0到1详解性能问题定位(建议收藏)

性能问题在软件开发中是一个常见的挑战。当用户遇到应用程序运行缓慢或卡顿的情况时,往往是由于性能问题造成。性能问题定位是解决这些问题的关键步骤之一,它能帮助我们找出造成应用程序性能差的根本原因。本文将从0到1详细且规范地介绍性能问题定位的过程。

397

高效执行自动化用例:分布式执行工具pytest-xdist实战!

在介绍pytest-xdist时,不讲任何原理,需要看原理的请移至官方:https://pypi.org/project/pytest-xdist/、当我们自动化测试用例非常多的时候, 一条条按顺序执行会非常慢,pytest-xdist的出现就是为了让自动化测试用例可以分布式执行,从而节省自动化测试时间,pytest-xdist是属于进程级别的并发。

852

UI自动化教程 —— 元素定位技巧:精确找到你需要的页面元素

在UI自动化测试中,准确地定位页面元素是至关重要的。无论是点击按钮、填写表单还是验证页面内容,都需要首先找到相应的页面元素。Playwright 提供了多种方法来实现这一点,包括使用CSS选择器和XPath进行元素定位,以及利用文本内容、属性值等高级策略。本文将详细介绍这些技术,并分享一些动态等待元素加载的最佳实践。

1408

【性能测试】一文3000字从0到1详解性能问题定位(建议收藏)

性能问题定位是解决软件性能问题的关键步骤之一。通过定位性能问题,我们可以找出造成性能问题的根本原因,并提出相应的解决方案。性能问题定位的过程需要收集足够的信息,分析性能问题的原因,进行性能测试,提出解决方案,并进行性能优化。同时,需要注意采用科学的方法、维护良好的报告和文档等。希望这篇文章可以帮助您更好地理解性能问题定位的过程,并提升软件开发的能力和水平。

1077

APP端网络测试与弱网模拟!

当前APP网络环境比较复杂,网络制式有2G、3G、4G网络,还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响。另外,当前app使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。

968

从自动化到测开,测试人员逆袭之路从此起步!

在当今竞争激烈的软件测试行业中,近期的招聘市场确实面临一些挑战。大量的求职者争相涌入岗位,许多热衷于功能测试的人士甚至难以找到理想的工作机会。更不幸的是,连自动化测试和性能测试这些专业领域也受到了测试开发人员的竞争压力。然而,让我们抛开焦虑,聚焦于一个更广阔的发展方向——测试平台开发。

539

接口请求的六种常见方式详解(get、post、head等)

1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)4、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

1346
上一篇: 新崛起的自动化神器Playwright
下一篇: 2022最新软件测试面试题(含答案)
小码哥说测试
小码哥说测试 长沙凯标官方账号 长沙凯标官方账号
博客等级 码龄7年 1万+粉丝 2067原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值