接口自动化你一定能要知道的基本流程和测试思路

news2024/10/6 2:27:09

接口自动化大致步骤:

1、发送请求

2、解析结果

3、验证结果

定义三个和业务相关的类

1、一个用来封装HTTPclient,用来发送请求

2、解析结果xml的类

3、一个用于比较测试结果和期望值的类,用于验证

4、自动生成报告的类:自动发送报告之类的

(locust的python工具)

服务级:Web server(服务) Database(持久化工具-数据库)、Cache(短时间持久化工具-缓存)

接口测试:

1、构造数据

(1)通过接口构造

比如获取一个blog的文章信息,怎么构造数据呢?(文章哪里来??)—返回blog信息

通过添加文章的接口,临时构造数据(blog文章),然后断言的时候看看是不是自己造的数据——会造成接口耦合(两个程序模块有关联就叫做耦合。)—和造文章的接口耦合(如果创建文章的接口挂了,那返回blog信息的接口也就挂了)

公交卡充值依赖支付宝的支付接口服务,调用支付接口会有代价,所以模拟一个支付接口,所有通过mockserver(测试桩)去模拟支付接口的服务----不管输入是什么,返回一直成功或是固定的

如何进行mock??
mockserver介绍:
使用: 

(2)通过持久化层构造(更好)

意思就是在数据库直接插入数据

2、调用接口

postman/jmeter–win

CURL-linux

Paw–mac

3、对接口返回进行断言

通过不同的输入-判断不同的预期----数据驱动(输入数据)
断言参考方法:对比数据库值,code验证

4、接口测试的用例设计

功能测试用例
业务逻辑设计
业务逻辑方面的测试用例主要是针对服务端接口的处理逻辑进行的用例设计,这种用例设计不是针对某个功能点是否实现,而是对接口的处理逻辑以及一些相互依赖的业务进行验证,通常依照接口的逻辑流程图来进行。举一个例子,购物系统中的两个动作:登录和下单操作,这两个业务是相互依赖的,下单操作必须在登录完成后(登录状态下),否则无法完成下单,这个时候我们就可以设计这样一条case:没有登录的状态下进行下单操作,看服务端如何处理。

在这里插入图片描述

可以看到这一块有两个判断,我们需要对不同的判断分支都设计用例,以保证流程图中涉及到的分支我们都有测试用例覆盖。图中涉及到的不同的分支有:
1.abdf;
2.acg;
3.abdeg;
相应的,我们的用例就应该是:
1.userInfo != null && value(userGroup) != 0;
2.userInfo == null;
3.userInfo != null && value(userGroup) == 0;
业务逻辑的用例设计主要是以服务端接口内部的逻辑流程图为基础,针对流程图中的判断和分支进行用例设计,保证服务端接口的每一种逻辑下都有测试用例覆盖。

异常处理情况
服务端接口和客户端之间通常是通过HTTP请求来传递数据,在发送请求的时候,客户端会携带各种不同的参数,此时服务端会根据不同的参数进行不同的处理,所以异常处理主要是针对请求中的参数情况:比如参数增加和缺省、参数的数据类型错误,参数携带错误的值、参数为空等等,这需要我们根据接口文档中各种不同的参数去构造不同的参数异常,检查服务端的响应情况。

性能和安全性方面
服务器的性能往往是个非常重要的关注点,在实际的测试中我们主要关注的是接口的QPS数值,以及CPU和内存占用等性能指标,通常借助于其他工具比如LoadRunner进行性能测试。安全性方面,主要考虑一些常见的安全策略比如请求加密、sql注入等等。

二、接口测试实例

1、postman测试
在这里插入图片描述

2、python测试

1 # coding:utf-8
 2 import requests,unittest
 3 class V2ETestCase(unittest.TestCase):
 4     def test_ger_node_api(self):
 5         python_node_id = 90
 6         url = "https://www.v2ex.com/api/nodes/show.json"
 7         node_name = 'python'
 8         querystring = {"name":node_name}
 9         res = requests.request("GET", url, params=querystring).json()
10         print res
11         self.assertEqual(res['id'],python_node_id)
12         self.assertEqual(res['name'], node_name)
13 
14 if __name__=='__main__':
15     unittest.main()

在命令行运行(以后做自动化测试用):
在这里插入图片描述
报告可以生成HTML形式的-加进去

python为例:

unittest库

Requests库

Json

Dict字典

assert断言

用postman做接口测试,选择get还是post,加入数据发送请求,查看返回的结果—然后给接口做断言(点右上角的code,选择js语言,写断言)

当接口返回的数据时动态的,比如一个网站文章的最新评论----还是测试环境问题,搭建一个专属的测试环境,不产生新的数据,一样的可以测试接口—相当于动态数据静态化

“怎么做接口测试”这个问题可以分解为两个问题:
怎么设计接口测试用例?
怎么执行接口测试?
在这里插入图片描述

怎么执行接口测试?
Fiddler、SOAPUI、PostMan等可以做半自动的接口自动化测试;
使用Robot Framework做全自动化的接口自动化测试;
自己用代码做全自动的接口自动化测试,如Java+testNG;

自动化接口测试+生成报告思路:
在接口的开始测试阶段,我用POSTMAN来手工测试接口,单一接口测试通过后,把测试用例Copy到Jmeter中,作为后续的定期执行的基础,在接口手工全部测完后,用Jmeter+Ant+Jenkins来定期检查每天的接口,并生成测试报告,再写一个爬虫每天监控测试报告,如果出现了异常,发邮件报警。

1、每天的历史报告肯定也是需要留存的
2、有案例失败时的邮件通知
在这里插入图片描述
Jenkins有邮件报警和report展示的插件~ 楼主不用自己写。。。

最后应该就是测试报告了,集成于自动化的接口测试,每天的接口测试报告也是挺重要的,Jmeter的测试报告虽然也很清楚,但是并不是我想要的东西,我理想的测试报告应该有一下那么两点

测试通过率
每条测试的过程展示
测试通过率是方便查看报告的人直观的了解本次测试的结果。

测试过程的展示需要展示如下内容:测试结果、请求地址、输入参数、输出结果、断言结果。并且成功和失败的标识需要非常明显。

总结:

感谢每一个认真阅读我文章的人!!!

 我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家评论区留言333或私我,免费领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nerf-Wild代码学习笔记Neural Radiance Fields for Unconstrained Photo Collections

前言: 本文为记录自己在Nerf学习道路的一些笔记,包括对论文以及其代码的思考内容。公众号: AI知识物语 B站讲解:出门吃三碗饭 本篇文章主要针对其代码来学习其内容,关于代码的理解可能会有出入,欢迎批评指…

如何使用P-One的全链路压测工具来定位问题节点和分析性能问题

首先,简单介绍一下,性能测试平台P-One。 PerformanceOne(简称:P-One)是泽众软件自主研发的一套一站式性能测试平台软件产品。 该产品采用 B/S 架构开发,实现了集管理、设计、压测、监控以及分析于一体的全方…

(06)ATF代码导读之BL31

代码导读 关于平台相关的代码和函数均以qemu实现解读。 BL31 在BL2中触发安全监控模式调用后会跳转到BL31中执行,同理复位的入口函数为bl31_entrypoint。BL31最主要的两个功能:作为启动流程,初始化硬件和加载BL32、BL31等;启动…

scratch 角色移动

scratch 角色移动 这是本人的第一个scratch程序。入坑scratch是因为希望体验一下图形化编程并制作以动画为主的图形化程序。用的软件是Mind。Mind是由scratch改编的开源IDE,可以图形化开发Arduino程序,本人使用Mind的另一个原因是Mind提供快捷地在OLED屏…

【数据库】MySQL安装(最新图文保姆级别超详细版本介绍)

1.总共两部分(第二部可省略) 安装mysql体验mysql环境变量配置 1.1安装mysql 1.输入官网地址https://www.mysql.com/ 下载完成后,我们双击打开我们的下载文件 打开后的界面,如图所示 我们选择custom,点击nex…

ModaHub魔搭社区:腾讯云向量数据库为什么以独立产品形式推出?

自今年大模型趋势发生以来,向量数据库领域备受关注。 今年3月以后,多家向量数据库厂商拿下最新融资,其中Pinecone更是获得高达1亿美元的B轮融资。 腾讯云当然也注意到了这一趋势。 腾讯云数据库副总经理罗云表示,当时内部已经开…

华为OD机试真题 Java 实现【网上商城优惠活动(一)】【2022 Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Java算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 某网上商城举办优惠活动,发布了满减、打折、无门槛3种优惠券,分别为: 1.每满100元优惠10元,无使用数限…

技术思维vs管理思维 程序员与项目经理5大思维差异

软件项目中,项目经理出身于程序员的情况较多,这样的项目经理在技术上拥有优势,但作为程序员的技术思维和作为项目经理的管理思维区别较大。因此如果不及时转换思维,往往造成过于纠结项目细节、忽视工期和成本压力,从而…

vmware虚拟机的12个使用技巧

1、增加虚拟机可用的物理内存 关闭虚拟机,设置内存: 2、硬件设备添加 一直选择下一步,直到这个界面进行磁盘大小分配: 3、控制权的切换 由于VMware的工作特点是在一台计算机中同时运行多个操作系统,因此这就存在一个…

排序算法-整理

1.【数据结构】带你玩转排序:堆排序、希尔排序、插入排序、选择排序、冒泡排序、快排(多版本)、归并排序 【数据结构】带你玩转排序:堆排序、希尔排序、插入排序、选择排序、冒泡排序、快排(多版本)、归并排序http://t.csdn.cn/fCXSo 2.十大基础算法 …

培训小程序首页开发

目录 1 定义变量2 欢迎语搭建3 分类导航搭建4 搭建底部导航总结 我们本篇来开发一下我们小程序的首页,先看一下原型 1 定义变量 因为我们首页展示的分类信息,现在分类信息已经存到了数据源里,我们要通过变量读取出来。 先打开我们创建的自…

Zabbix之部署

Zabbix 6.0 一.Zabbix介绍 1.zabbix 的含义 zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各…

matlab用histfit画直方图+拟合曲线

matlab画直方图拟合曲线 成图效果1 数据格式2 绘制步骤3 后话 成图效果 1 数据格式 应该准备一个double的数组,如果是csv或者xlsx直接拖进matlab是table型,这是无法作为绘图参数的 如果是table型,可以使用table2array(data)进行转换 2 绘制…

广东程序员,今年28岁,4年经验月薪13K,仍一事无成

之前认识的一位工作很努力的广州程序员朋友,前天深夜微信拍了拍我——“在吗?播妞”。 他把对未来的迷茫一股脑的倒了出来: 对方拍了拍你的“隐形翅膀” 我在! 长夜漫漫无心睡眠,我以为只有我睡不着觉,…

Unity 之 超级详细的隐私问题解决方案

Unity 之 助力游戏增长 -- 解决隐私问题 一,平台测试隐私问题二,解决方式一2.1 勾选自定义Mainifest2.2 修改自定义Mainifest2.3 隐私协议弹窗逻辑 三,解决方式二3.1 导出安卓工程3.2 创建上层Activity3.3 配置AndroidManifest 四&#xff0…

还在为PMO总结发愁?PMO工作总结应该怎么写及实例看这篇就够了

很多公司都要写总结了,作为PMO我们应该如何写工作总结呢?如何写总结能表现自己的价值还能让老板更喜欢看呢?过去一段时间的工作进行回顾总结,发掘问题、总结经验、进行规划等活动的过程。 今天分享给大家一个PMO写总结的方法和实…

Linux5.94 Zabbix服务配置与应用

文章目录 计算机系统5G云计算第四章 LINUX Zabbix服务配置与应用一、Zabbix服务概述1.zabbix 监控原理2.Zabbix 6.0 新特性1)Zabbix server高可用防止硬件故障或计划维护期的停机2)Zabbix 6.0 LTS新增Kubernetes监控功能,可以在Kubernetes系统…

PCB技巧(五)

一、问题及原因 问题: 对板子进行测试,发现引脚OPA电压不对,DAC输出电压没有问题,OPA接DAC输出应该和DAC电压大致差不多,但是电压差100mV。 原因: 经查找是下图中GND走线与旁边引脚OPO有接触。在未焊接…

香橙派刷机和系统登入

1.刷机 先打开刷机软件,再点击format,然后关闭 完成之后打开win32diskimager 选择映像文件后点击写入 等待写入 写入成功 2.登入香橙派 串口连接 默认登入账号密码为orangepi 密码不会显示

ChatGPT,你的智能助手,社交办公利器

ChatGPT,你的智能助手,社交办公利器! 嗨,亲爱的小红书好友们!我今天要向大家强力推荐一款让生活工作更轻松的神奇助手——ChatGPT!无论是工作中的问题求解、日常生活的疑惑迷茫,还是灵感创作的启…