接口测试总结

news2024/11/17 9:33:24

一、了解一下HTTP与RPC

  1. HTTP(HyperText Transfer Protocol) 

    说明:超文本传输协议,是互联网上应用最为广泛的一种网络协议。

    优点:就是简单、直接、开发方便,利用现成的http协议进行传输。

    流程图:

  2. RPC(Remote Procedure Call)

    说明:远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

    优点:提升系统可扩展性,传输效率更快,安全性更高。

    流程图:

二、HTTP接口测试
  常见请求类型: post(增)、get(查)、put(改)、delete(删)等。

  1)get型接口

    格式: 请求数参数写在网址后面,用"?"连接,多个参数之间用"&"连接。如:https://api.douban.com/v2/book/search?q='',这是一个豆瓣查询图书信息的开发api,q='',单引号里就是查询的参数,

  如查询《小王子》这本书的信息,则q='小王子',使用postman工具来试验一下,如下图:

   场景: get型接口用于获取信息,多用于查询数据,如列表查询功能,点击查询按钮就调用一个get接口,然后把信息返回出来。

    特点: 请求数据量小,参数暴露于url地址中,故存在安全隐患。

  2)post型接口

    说明: 向指定资源位置提交数据(如提交表单、上传文件)来进行请求,post请求可能会导致新资源的建立

    场景: 如注册、上传、发帖等功能,如用户在豆瓣网站对某本书进行收藏、写笔记、发表评论

    特点: 请求数据量大,安全性高

    如豆瓣的发表评论的开放api,见下图:

  3)put型接口

    说明:  put请求用于向指定资源位置上传最新内容

    场景:  如用户在豆瓣网站修改对某本书的收藏、修改某篇笔记或修改评论

    如豆瓣的修改评论的开放api,见下图:

 

 4)delete型接口

    说明: 请求服务器删除请求里url所标识的资源

    场景: 如用户在豆瓣网站取消对某本书的收藏、删除某篇笔记或删除评论

    如豆瓣的删除评论的开放api,见下图:

    

三、RPC接口测试
  1)RPC接口其应用框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等,这次我们主要介绍一下Dubbo框架。

  Dubbo是一个高性能、轻量级的RPC框架。主要提供三个关键功能,包括基于接口的远程调用、容错和负载平衡、以及自动服务注册和发现。

  2)流程图:

 3)测试环境搭建:

  a.  pom.xml引入相关service应用jar依赖(示例:)

<dependencies>
        <dependency>
            <groupId>com.test.service</groupId>
            <artifactId>base-service-test</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>  
            <groupId>jdk.tools</groupId>  
            <artifactId>jdk.tools</artifactId>  
            <version>1.8</version>  
            <scope>system</scope>  
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>  
        </dependency>
    </dependencies>

   b.  dubbo服务spring配置(示例:)

<!-- 引入资源配置 -->
<import resource="spring-resource.xml"/>
<!-- 具体的实现bean -->
<bean id="demoServer" class="com.dub.provider.impl.DemoServerImpl" />
<!-- 提供方应用信息 -->
<dubbo:application name="xs_provider" />
<!-- zookeeper服务器地址 -->
<dubbo:registry address="zookeeper://localhost:2181" />
<!-- 用dubbo协议暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.dub.provider.DemoServer" ref="demoServer" />
<!------------------------------------------------------------------------>
<!-- 在工程resources下添加其资源配置文件-->
<dubbo:application name="hjy_consumer" />
    <dubbo:reference interface="com.dub.provider.DemoServer" id="demoServer"
        url="dubbo://localhost:20880" timeout="10000" />

c.  基于TESTNG数据驱动编写方法(示例:)

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring.xml"})
@Configuration
 
//++++++++++++继承方法++++++++++++
public class BaseTestNGTest extends AbstractTestNGSpringContextTests {
 
  //++++++++++++数据收集++++++++++++
  @DataProvider(name = "testdata")
  public Object[][] dataprovide()throws IOException{
    System.out.println("dataprovide");
    // return new Object[][]{{2000020013,2},{2001000138,0},{2001000139,2}};
    Object[][] testData =ExcelHandle.readXlsx(excel, "sheet2");
    return testData;
  }
 
  //++++++++++++数据传递++++++++++++
  @Test(dataProvider="testdata")
  public void test_case_1(HashMap<String, String> map) throws Exception {
    operatorUserId=Integer.valueOf(map.get("userId"));
    exceptedvalue=Integer.valueOf(map.get("excepted"));
    //++++++++++++实际值++++++++++++
    Integer actual_value=billService.getUserEmailNameCount(operatorUserId);
    //++++++++++++预期值++++++++++++
    Integer excepted_value=get_excepted_value(operatorUserId);
    //+++++++++++++验证+++++++++++++
    Assert.assertEquals(actual_value,exceptedvalue);
  }
}
四、接口测试用例设计

五、测试思路总结
  1)查看接口文档,了解接口功能及其业务逻辑

  2)确定接口调用协议(http、rpc等)

  3)确定请求类型(post、get等)

  4)确定请求地址/调用方法

  5)组装请求报文 ☆☆☆☆☆(参考测试设计)

  6)选用适用工具或编写脚本测试

  7)检查返回码,及其描述

  8)检查返回值,及其对应数据库数据变化

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

 文档获取方式:

加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

C++学习Day3:面向对象OOP、抽象

OOP特点&#xff1a;封装、继承、duotai 接口的好处&#xff1a;Communication & Protection&#xff08;向外界隐藏实现&#xff09; 抽象 类的析构函数 析构函数的名称与类的名称是完全相同的&#xff0c;只是在前面加了个波浪号&#xff08;~&#xff09;作为前缀&am…

C++ 提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数

#include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串>>>" << endl;getline(cin, str);int size str.size();int xiaoxie 0;int daxie 0;int shuzi 0;int kongge 0;int qita 0;for(int i0;i < …

厂商大盘点,让我们来看看国内有哪些RPA厂商?RPA厂商有没有开箱即用的产品呢?

一、什么是RPA&#xff1f; RPA(Robotic Process Automation)机器人流程自动化&#xff0c;指用软件机器人实现业务流程的自动化&#xff0c;以“模拟人工操作”的方式进行业务操作帮助企业处理重复的、规则固定的、繁琐的流程作业。 二、国内有哪些RPA厂商 我这边根据IDC最新…

【逐步剖C++】-第三章-C++内存管理

一、C/C内存分布 C/C的内存分布主要分为如下这么四个区域&#xff1a; 1、栈区&#xff08;stack&#xff09;&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以在栈上创建&#xff0c;函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器…

电机控制、运动控制、过程控制三者关系

1. 电机控制 { 单电机参数&#xff1a;位置/角位移(方向)环、速度环(加减速、最大速度、启停速)、扭/转矩环三个控制环 } Motor Control 主要关注的是&#xff0c;控制单个电机的转距(torque control mode)、速度(speed control mode)、位置(position control mode)中的一个或…

自学(黑客)技术方法————网络安全

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…

若依分离版-前端使用

1 执行 npm install --registryhttps://registry.npm.taobao.org&#xff0c;报错信息如下 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: ktg-mes-ui3.8.2 npm ERR! Found: vue2.6.12 npm ERR! node_modu…

102-视频与网络应用篇-环境搭建

1.开发环境 本栏目开发所采集的操作系统是windows10Vmware上安装的Ubuntu18&#xff0c;关于Vmware和Ubuntu操作系统的安装过程本文不详细描述&#xff0c;具体安装步骤大家可以自己百度&#xff0c;有很丰富的安装教程。 本栏目查看资料、代码编辑、均在windows端&#xff0c;…

Unittest接口自动化测试

我又来了&#xff0c;来分享年前的unittest接口自动化实战啦。这次自动化接口框架比较简单&#xff0c;但是五脏俱全。(注:项目是针对我们公司内部系统的测试&#xff0c;我就不分享链接了。&#xff09; 项目简介 项目名称&#xff1a;****名片系统 项目目的&#xff1a;实…

wails window下打包安装包

官方文档https://wails.io/zh-Hans/docs/guides/windows-installer 版本&#xff1a;Wails CLI v2.6.0 问题 打包命令 wails build 打包出来的exe文件是直接打开的&#xff0c;不能包含程序安装功能 解决办法 1、chocolatey 安装包管理器工具安装 管理员身份打开powershell&a…

基于旗鱼优化的BP神经网络(分类应用) - 附代码

基于旗鱼优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于旗鱼优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.旗鱼优化BP神经网络3.1 BP神经网络参数设置3.2 旗鱼算法应用 4.测试结果&#xff1a;5.M…

vue解决:Parsing error: No Babel config file detected for ....

报错信息 Parsing error: No Babel config file detected for C:\Users\Admin\Desktop\shabi\work\src\App.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files. 分析错误&#xff1a;没有检测…

Pyside6 安装和简单界面开发

Pyside6 安装和简单界面开发 Pyside6介绍Pysied6开发环境搭建Python安装Pysied6安装 Pyside6界面开发简单界面设计界面设计界面编译 编写界面初始化代码软件打包 Pyside6介绍 对于Python的GUI开发来说&#xff0c;Python自带的可视化编程模块的功能较弱&#xff0c;PySide是跨…

嵌入式处理趋势,第一部分:超集成MCU

当今的嵌入式微控制器&#xff08;MCU&#xff09;是协同和创新的惊人例子。单个芯片上可容纳30,000至2百万个门&#xff0c;直到最近&#xff0c;各种集成的组件和模块都被视为独立的高级IC。 例如&#xff0c;当前典型的MCU设备&#xff08;下面的图1&#xff09;可能包含以…

【Kubernetes】深入了解 Kubernetes:现代容器编排与管理平台

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…

【红日靶场】vulnstack3-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 文章目录 系列文章目录基本信息环境配置开始渗透信息收集暴力破解漏洞利用绕过内网信息收集尝试上线msf上线msf横向移动msf 传达会话给cs横向到域…

关于IDEA中gradle项目bootrun无法进入断点以及gradle配置页面不全的解决方案

问题背景 在使用gradle编写的bootrun&#xff0c;采用debug方式启动项目时&#xff0c;无法进入断点&#xff0c;程序正常运行 并发现象1 此处无法识别为大象图标 点击右键后&#xff0c;没有圈中的这个选项 并发现象2 图片圈中的位置缺失 问题原因 正常的 run 命令是通过…

【状态估计】将Transformer和LSTM与EM算法结合到卡尔曼滤波器中,用于状态估计(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

蓝牙技术|Matter或能改变中国智能家居市场,蓝牙技术将得到进一步应用

近年来&#xff0c;智能家居开放协议标准Matter&#xff08;目前版本 1.1&#xff09;由连接标准联盟发布&#xff0c;该联盟是一个由数百家公司组成的全球性机构&#xff0c;旨在提供与物联网 (IoT) 相关的标准。例如&#xff0c;Matter 用于允许 Amazon Alexa、Apple Home、G…

【java源码】二甲医院his系统全套源码 云HIS系统源码

基层医院云HIS系统源码 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能&#xff0c;还能与公卫、PACS等各类外部系统融合&…