接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架

这篇具有很好参考价值的文章主要介绍了接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

正文

2. 基本流程

基本的接口功能自动化测试流程如下:

需求分析 -> 用例设计 -> 脚本开发 -> 测试执行 -> 结果分析

2.1 示例接口

接口名称:豆瓣电影搜索

地址啥的会被屏蔽,发不出来,放在文末了

3. 需求分析

需求分析是参考需求、设计等文档,在了解需求的基础上还需清楚内部的实现逻辑,并且可以在这一阶段提出需求、设计存在的不合理或遗漏之处。

如:豆瓣电影搜索接口,我理解的需求即是支持对片名,演职人员及标签的搜索,并分页返回搜索结果。

4. 用例设计

用例设计是在理解接口测试需求的基础上,使用MindManager或XMind等思维导图软件编写测试用例设计,主要内容包括参数校验,功能校验、业务场景校验、安全性及性能校验等,常用的用例设计方法有等价类划分法,边界值分析法,场景分析法,因果图,正交表等。

5. 脚本开发

依据上面编写的测试用例设计,我们使用python+nosetests框架编写了相关自动化测试脚本。可以完整实现接口自动化测试、自动执行及邮件发送测试报告功能。

5.1 相关lib安装

必要的lib库如下,使用pip命令安装即可:

pip install nose pip install nose-html-reporting pip install requests

5.2 接口调用

使用requests库,我们可以很方便的编写上述接口调用方法(如搜索q=刘德华,示例代码如下):

#coding=utf-8 import requests import json url = ‘1’ params=dict(q=u’刘德华’) r = requests.get(url, params=params) print ‘Search Params:\n’, json.dumps(params, ensure_ascii=False) print ‘Search Response:\n’, json.dumps(r.json(), ensure_ascii=False, indent=4)

在实际编写自动化测试脚本时,我们需要进行一些封装。如下代码中我们对豆瓣电影搜索接口进行了封装,test_q方法只需使用nosetests提供的yield方法即可很方便的循环执行列表qs中每一个测试集:

class test_doubanSearch(object): @staticmethod def search(params, expectNum=None): url = ‘1’ r = requests.get(url, params=params) print ‘Search Params:\n’, json.dumps(params, ensure_ascii=False) print ‘Search Response:\n’, json.dumps(r.json(), ensure_ascii=False, indent=4) def test_q(self): # 校验搜索条件 q qs = [u’白夜追凶’, u’大话西游’, u’周星驰’, u’张艺谋’, u’周星驰,吴孟达’, u’张艺谋,巩俐’, u’周星驰,大话西游’, u’白夜追凶,潘粤明’] for q in qs: params = dict(q=q) f = partial(test_doubanSearch.search, params) f.description = json.dumps(params, ensure_ascii=False).encode(‘utf-8’) yield (f,)

我们按照测试用例设计,依次编写每个功能的自动化测试脚本即可。

5.3 结果校验

在手工测试接口的时候,我们需要通过接口返回的结果判断本次测试是否通过,自动化测试也是如此。

对于本次的接口,我们搜索“q=刘德华”,我们需要判断返回的结果中是否含有“演职人员刘德华或片名刘德华”,搜索“tag=喜剧”时,需要判断返回的结果中电影类型是否为“喜剧”,结果分页时需要校验返回的结果数是否正确等。完整结果校验代码如下:

class check_response(): @staticmethod def check_result(response, params, expectNum=None): # 由于搜索结果存在模糊匹配的情况,这里简单处理只校验第一个返回结果的正确性 if expectNum is not None: # 期望结果数目不为None时,只判断返回结果数目 eq_(expectNum, len(response[‘subjects’]), ‘{0}!={1}’.format(expectNum, len(response[‘subjects’]))) else: if not response[‘subjects’]: # 结果为空,直接返回失败 assert False else: # 结果不为空,校验第一个结果 subject = response[‘subjects’][0] # 先校验搜索条件tag if params.get(‘tag’): for word in params[‘tag’].split(‘,’): genres = subject[‘genres’] ok_(word in genres, ‘Check {0} failed!’.format(word.encode(‘utf-8’))) # 再校验搜索条件q elif params.get(‘q’): # 依次判断片名,导演或演员中是否含有搜索词,任意一个含有则返回成功 for word in params[‘q’].split(‘,’): title = [subject[‘title’]] casts = [i[‘name’] for i in subject[‘casts’]] directors = [i[‘name’] for i in subject[‘directors’]] total = title + casts + directors ok_(any(word.lower() in i.lower() for i in total), ‘Check {0} failed!’.format(word.encode(‘utf-8’))) @staticmethod def check_pageSize(response): # 判断分页结果数目是否正确 count = response.get(‘count’) start = response.get(‘start’) total = response.get(‘total’) diff = total - start if diff >= count: expectPageSize = count elif count > diff > 0: expectPageSize = diff else: expectPageSize = 0 eq_(expectPageSize, len(response[‘subjects’]), ‘{0}!={1}’.format(expectPageSize, len(response[‘subjects’])))

5.4 执行测试

对于上述测试脚本,我们使用nosetests命令可以方便的运行自动化测试,并可使用nose-html-reporting插件生成html格式测试报告。

运行命令如下:

nosetests -v test_doubanSearch.py:test_doubanSearch --with-html --html-report=TestReport.html

5.5 发送邮件报告

测试完成之后,我们可以使用smtplib模块提供的方法发送html格式测试报告。基本流程是读取测试报告 -> 添加邮件内容及附件 -> 连接邮件服务器 -> 发送邮件 -> 退出,示例代码如下:

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_mail(): # 读取测试报告内容 with open(report_file, ‘r’) as f: content = f.read().decode(‘utf-8’) msg = MIMEMultipart(‘mixed’) # 添加邮件内容 msg_html = MIMEText(content, ‘html’, ‘utf-8’) msg.attach(msg_html) # 添加附件 msg_attachment = MIMEText(content, ‘html’, ‘utf-8’) msg_attachment[“Content-Disposition”] = ‘attachment; filename=“{0}”’.format(report_file) msg.attach(msg_attachment) msg[‘Subject’] = mail_subjet msg[‘From’] = mail_user msg[‘To’] = ‘;’.join(mail_to) try: # 连接邮件服务器 s = smtplib.SMTP(mail_host, 25) # 登陆 s.login(mail_user, mail_pwd) # 发送邮件 s.sendmail(mail_user, mail_to, msg.as_string()) # 退出 s.quit() except Exception as e: print "Exceptioin ", e

6. 结果分析

打开nosetests运行完成后生成的测试报告,可以看出本次测试共执行了51条测试用例,50条成功,1条失败。接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

失败的用例可以看到传入的参数是:{“count”: -10, “tag”: “喜剧”},此时返回的结果数与我们的期望结果不一致(count为负数时,期望结果是接口报错或使用默认值20,但实际返回的结果数目是189。赶紧去给豆瓣提bug啦- -)

接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

7. 测试报告

最终发送测试报告邮件,截图如下:接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

重点:学习资料学习当然离不开资料,这里当然也给你们准备了600G的学习资料

【需要的可以扫描文章末尾的qq群二维码自助拿走】

【记得(备注“csdn000”)】

【或私信000】

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架,2024年程序员学习,测试工具,测试用例

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,可以添加V获取:vip1024b (备注软件测试)**
[外链图片转存中…(img-A1NVpKFf-1713222806625)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!文章来源地址https://www.toymoban.com/news/detail-857547.html

到了这里,关于接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 股票模型接口测试需要哪些工具?

    股票模型接口测试需要哪些工具?今天与大家分享的内容是接口测试所必需的postman测试工具的使用:postman发送get与post请求、变量设置与引用、文件导入与导出、断言机制、参数化、批量实施测试集、环境变量与全球变量设置、定时器使用与关联、测试结果导出。 Postman简介

    2024年02月12日
    浏览(26)
  • 接口测试流程、测试点和测试工具

    目录 前言: 一、什么情况下开展接口测试? 二、如何进行接口测试

    2024年02月11日
    浏览(41)
  • 网络安全主要包括哪些方面

    什么是网络安全?网络安全主要包括哪些方面? 什么是网络安全? 网络安全就是网络上的信息安全,是指网络系统中的硬件、软件和系统中的数据都能受到保护,不会因意外或恶意原因而损坏、更改或泄露。系统连续可靠地正常运行,网络服务不中断。   从广义上讲,所有涉及

    2024年02月11日
    浏览(34)
  • 测试好工具fiddler,手机抓包,查看手机app请求了哪些接口

    领导让我接收一个项目,但是这个项目是安卓的,安卓我一窍不通,我们只做过web页面的。身为一个大数据程序员,要接手同事的项目,给我了代码,但是我完全不知道,这个代码对应,安卓机里面的那个功能。 但是安卓又没有像浏览器那样自带调试,于是就需要一个工具,

    2024年02月09日
    浏览(41)
  • web安全主要包括哪些方面的安全

    web安全主要包括哪些方面的安全:web安全主要分为保护服务器及其数据的安全、保护服务器和用户之间传递的信息的安全、保护web应用客户端及其环境安全这三个方面。 web安全介绍 Web应用安全问题本质上源于软件质量问题。但Web应用相较传统的软件,具有其独特性。 Web应用

    2024年02月06日
    浏览(30)
  • 标准化智慧工地主要包括哪些方面

    迈道科技智慧工地管理系统的目的是以安全质量为切入口,结合软硬件实现对工地全方位的管理,实现安全、质量、进度、费用、人员的结合。   智慧工地的特点是集约化管理、精细化管理、实现设备联动,管理协调,数据共享;发挥大数据在数据分析、人员、进度管理方面

    2024年02月07日
    浏览(41)
  • 智慧校园建设主要包括哪些方面的内容?

    在当今数字化的时代,越来越多的学校开始实施智慧校园计划,旨在为学生和教师提供更加高效、便捷的学习和教学环境。 那么,究竟什么是智慧校园呢?智慧校园建设主要包括哪些方面的内容?这篇就来详细讲一讲! 智慧校园是指运用互联网、大数据、人工智能等先进技

    2024年02月07日
    浏览(40)
  • 无人机航测技术有何特点?主要应用在哪些方面?

    无人机航测是航空摄影测量的一种,主要面向低空遥感领域,具有成本低、快速高效、适用范围广等特点。目前,无人机航测主要应用于地形测绘、城市数字化建设、工程建设等方面。 无人机航测技术的特点 传统的人工测量技术主要利用卫星测绘,就相同的测量区域而言,

    2024年02月14日
    浏览(24)
  • 精通api接口测试,接口分类,接口架构,http,webservice,dubbo接口协议,接口流程,接口工具,cookie,session,token接口鉴权原理以及实战

    接口口测试和接口自动化测试一直都是很多人混乱的概念。所以搞清楚2个的概念是很重要的一件事情。 接口:一段具备逻辑处理功能的程序代码组成的,可被其他方法、服务或应用所使用。 对于调用接口的那一方,可以把接口看做一只黑匣子,只需要负责按约定传入参数,

    2024年02月02日
    浏览(32)
  • 接口测试到底要怎么测?详细介绍接口测试的流程和步骤

    我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的 组件接口数据 交互测试、不同系统与系统之间的 接口数据交互 测试等,我们都可以称之为 接口测试  ! 那么接口测试是怎么来测试接口的呢? 接口测试就是通过接口的不同情况下的输入和与之对用的

    2024年02月07日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包