接口测试的几种方法

其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。

方法一、用LoadRunner实现接口测试

大家都知道LoadRunner是一种性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下:

接口测试地址:/SNS/Publish

请求报文参数说明:

请求报文格式:

应答报文的参数接口说明:

应答报文格式: 

有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。

 LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_submit_data(),web_custom_request()。下面介绍两种我常用的方法:

方法一:使用web_submit_data()

方法二:使用web_custom_request()

这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。

方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把xml拼接成一个字符串然后通过web_custom_request()向服务器              发送请求。

我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()区别请大家           百度一下,详细信息太多,在这里不便叙述。

因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request()的前面。

如:

在脚本的最后我们可以对查询字段的信息进行统计 

总结:用LoadRunner做接口测试无法做到把接口参数和程序分理,接口的参数可以通过参数化的方法来实现对同一个参数多个数据的测试。参数化后的测试数据保存在此脚本的保存位置下。

方法二、通过Java + Fitnesse实现接口功能测试

什么是Fitnesse?

FitNesse是一套软件开发协作工具 FitNesse是帮助大家加强软件开发过程中的协作的工具。能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。

FitNesse是一套软件测试工具 从另外一个角度看,FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(Acceptance Tests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。

FitNesse是wiki可以很方便的创建和编辑页面 FitNesse是一个web服务器不用过多的安装配置,很方便使用。

我习惯使用Eclipse集成开发工具写测试代码,用fitnesse准备接口的测试数据,由此实现接口的测试数据和测试程序的分离。

关于Fitnesse的使用大家可以参考官方网址。Fitnesse的四种常见表格是:

ColumnFixture,ActionFixture,Decision Table,ScriptTable。在工作中ColumnFixture用的最多。

下面的程序使用的是ColumnFixture表格。

总结:上述两种方法都是对接口做功能测试的方法,使用LoadRunner做接口测试的时候可以不用让开发人员提供测试人员相应的UI测试页面,直接调用接口做测试,但是测试程序和数据的依赖性太强;使用Fitnesse做接口测试的时候可以实现测试程序和数据的                  分离,只用点击Fitnesse界面的Test按钮就可以实现测试,测试消耗时间比使用LoadRunner做接口测试少。

还有一种就是现在自己在用的:

直接带参数自己写一个Test类   里面去写测试方法  看能返回你要的参数不  能返回就成功了

总结:

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

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Kaggle量化比赛】Top讨论

问: 惊人的单模型得分,请问您使用了多少个特征来获得如此高的得分?我也在使用LGB模型。 答 235个特征(180个基本特征+滚动特征) 问: 您是在使用Polars进行特征工程还是仅依赖于Pandas+Numba/多进程?即使进行了Numba优化,我也发现当滚动特征过多时,推理速度会非常慢。在…

Gitlab SSH无法连接但是HTTP可以连接

项目场景: Gitlab在docker中布置好之后测试,发现SSH无法连接但是HTTP可以连接 提示:这是一个无效的源路径 问题描述 http可以识别为git项目,而ssh无法识别成git项目。 原因分析: 三种猜想 端口号被占用 尝试查看…

【活动回顾】ABeam News | ABeam德硕中国受邀参加浦东新区商务委员会企业座谈会,携手共谋发展

政企协同促发展 近日,应浦东新区商务委员会邀请,ABeam中国参与咨询与调查企业座谈会。 深化政企合作、促进联系交流,浦东新区商务委员副主任曹磊与会出席,并与参会企业代表深入交流,了解企业发展情况和需求&#xff0…

25. 一个双高斯照相物镜的设计

导论: 双高斯照相物镜的设计思想,当β-1时,由于其对称,彗差、畸变和倍率色差自动校正为0,利用中间两块厚透镜可以校正场曲,选取合适的光阑位置可以校正像散,在厚透镜中加胶合面使每个半部校正位…

震撼科技界的GPT-4o发布首日即遭“越狱破防”

前言 本文主要解读分析OpenAI最新推出的大型模型GPT-4o可能存在的越狱风险。 5 月14 日凌晨的科技圈再一次被OpenAI轰动,其发布的最新大模型GPT-4o,能力横跨语音、文本和视觉,这一成果无疑再次巩固了OpenAI在人工智能领域的领先地位。 然而…

【Android】基于webView打造富文本编辑器(H5)

目录 前言一、实现效果二、具体实现1. 导入网页资源2. 页面设计3. 功能调用4. 完整代码 总结 前言 HTML5是构建Web内容的一种语言描述方式。HTML5是Web中核心语言HTML的规范,用户使用任何手段进行网页浏览时看到的内容原本都是HTML格式的,在浏览器中通过…

Python Django 实现教师、学生双端登录管理系统

文章目录 Python Django 实现教师、学生双端登录管理系统引言Django框架简介环境准备模型设计用户认证视图和模板URL路由前端设计测试和部署获取开源项目参考 Python Django 实现教师、学生双端登录管理系统 引言 在当今的教育环境中,数字化管理系统已成为必不可少…

3.华为trunk和access接口配置

目的:PC1 连通三层交换机LSW1 LSW1配置 [Huawei]vlan batch 10 [Huawei]interface Vlanif 10 [Huawei-Vlanif10]ip address 10.10.10.10 24 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type trunk [Huawei-GigabitEthernet0/0/1]port trunk allow…

大数据分析-二手车用户数据可视化分析

项目背景 在当今的大数据时代,数据可视化扮演着至关重要的角色。随着信息的爆炸式增长,我们面临着前所未有的数据挑战。这些数据可能来自社交媒体、商业交易、科学研究、医疗记录等各个领域,它们庞大而复杂,难以通过传统的数据处…

SpringBoot启动流程、起步依赖、配置文件、运行方式与核心注解

讲一讲SpringBoot启动流程 springboot项目在启动的时候, 首先会执行启动引导类里面的SpringApplication.run(AdminApplication.class, args)方法 这个run方法主要做的事情可以分为三个部分 : 第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、…

LangChain-ChatGLM本地搭建|报错合集(win10)

安装过程 1. 创建虚拟环境 conda create -n langchain-chatglm python3.10 conda activate langchain-chatglm2. 部署 langchain-ChatGLM git clone https://github.com/imClumsyPanda/langchain-ChatGLMpip3 install -r requirements.txt pip3 install -U gradio pip3 inst…

python文件操作、文件操作、读写文件、写模式

with读取文件数据内容 with open(filepath,mode,encoding) as file:#具体操作,例如:print(file.read())#查看文件所有的内容。 with:Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境…

springboot 腾讯地图接口验签 java

1. 原因 需求需要通过小程序定位拿到用户所在行政区信息,但是小程序定位只能拿到经纬度信息,所以需要调用腾讯地图的逆地址解析(我认为:微信是腾讯的,那么使用腾讯地图的逆地址解析经度应该不会损失太多)如果WebServiceAPI Key配置中签名校验,那么调用接口就需要进行验签 2. W…

halcon ocr识别字符

基本代码 create_text_model_reader (auto, Universal_0-9A-Z_Rej.occ, TextModel) * Optionally specify text properties set_text_model_param (TextModel, [min_char_height,polarity], [30, dark_on_light]) find_text (ImageResult, TextModel, TextResultID) * Return c…

postman断言及变量及参数化

1:postman断言 断言:判断接口是否执行成功的过程 针对接口请求完成之后,针对他的响应状态码及响应信息进行判断,代码如下: //判断响应信息状态码是否正确 pm.test("Status code is 200", function () { pm.response.…

长短期记忆神经网络(LSTM)的回归预测(免费完整源代码)【MATLAB】

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊类型的递归神经网络(RNN),专门用于处理和预测基于时间序列的数据。与传统RNN相比,LSTM在处理长期依赖问题时具有显著优势。 LSTM的基本…

Linux1(介绍与基本命令1)

目录 一、初始Linux 1. Linux的起源 2. Linux是什么? 3. Linux内核版本 4. Linux的应用 5. 终端 6. Shell 7. Linux目录结构 二、基本命令 1. 基本的命令格式 2. shutdown 关机命令 3. pwd 当前工作目录 4. ls 查看目录内容 5. cd 改变工作目录 …

找工作小项目:day16-重构核心库、使用智能指针(2)

day16-重构核心库、使用智能指针 太多了分一篇写。 5、EventLoop 这是一个事件轮询,在这个部分会通过Poller进行就绪事件的获取,并将事件进行处理。 头文件 这里使用了一个智能指针并使用的是unique_ptr指向Poller红黑树,防止所有权不止…

ctfshow web 单身杯

web签到 <?phperror_reporting(0); highlight_file(__FILE__);$file $_POST[file];if(isset($file)){if(strrev($file)$file){ //翻转函数include $file;}}要进行反转并且包含文件用data协议 自己写不好写可以用函数帮你翻转 <?php $adata:text/plain,<?eval(…

HTML中的资源提示关键词

渲染阻塞问题 之前在学习浏览器的渲染原理的时候我们就知道&#xff1a;因为浏览器一次只能开启一个渲染主线程&#xff0c;所以当浏览器解析到script标签时会停止DOM树的构建&#xff0c;转而去执行script&#xff0c;如果script中引用的是外部脚本&#xff0c;则浏览器会先从…