App接口测试总结

article/2025/11/9 5:49:25

使用工具

Fiddler、Jmeter

测试步骤:

1.    确认接口

从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。

如果当前项目没有接口文档,则可以使用fiddler对APP进行抓包确认。

fiddler对手机进行抓包的方法可以参考:http://blog.csdn.net/whorus1/article/details/50673740

在手机上对APP进行操作,然后在Fiddler中可以抓取对应的网络交互信息(一个功能中可能设计多个接口的交互)。在抓取的信息中可以看到接口请求方式、接口请求URL、接口请求参数、接口返回参数。

2.    在Jmeter中编写测试脚本

1.      在测试计划中添加一个线程组(在测试计划上右击,添加-Threads-线程组)。


可以将线程组的名称改成测试项目的名称。

在性能测试时可以通过配置线程属性中的参数来控制并发用户数:

线程数:虚拟用户数,即并发数,一个线程表示一个虚拟用户;

Ramp-Up Period:所有线程启动的时间,单位s。通过这个参数可以设置每个线程间的启动间隔,防止给电脑造成太大性能压力;

循环次数:测试循环的次数,如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止运行脚本;


2.      在线程组中添加HTTP请求(在线程组上右击,添加-Sampler-HTTP请求)。

可以将名称改为待测接口的名称;

在Web服务器中填入请求服务器的地址和端口号;

协议中填入HTTP请求的协议,可以是http或https,我们一般用的都是http;

在方法中选择HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE;(我们项目中的接口方法使用的主要是GET和PUT,在目前易户网的项目中由于APP不直接和服务器交互,中间有一个统一接口平台,所以GET方法的接口请求也要使用POST进行交互。)

在路径中填入接口请求的URL;

请求参数:如果是GET方法的请求,请求参数直接写在URL后面即可;如果是POST的方法,则需要在Body Data中填入包含请求参数的数据(Body Data可以从Fiddler抓的包中获取,将Fiddler抓取的到数据包中Inspectors-TextView中的数据复制到Body data中即可);


3.      在线程组中添加HTTP信息头管理器(在线程组上右击,添加-配置元件-HTTP请求信息头管理器)。

配置如下:


4.      添加监听器(在线程组上右击,添加-监听器-XXX)。

主要配置完成了,需要添加监听器以查看测试结果。一般我们使用查看结果树和聚合报告查看。

查看结果树:在结果树中会以树形结构展示每个接口请求的测试结果,包括取样器结果、请求、响应数据,在响应数据中可看到网络侧返回的数据,可以以接口文档中期望返回的参数做比较以判断返回是否正确。在结果树中通过颜色可以直观的看到接口测试的结果,绿色为通过,红色为失败。


聚合报告:从聚合报告中我们可以获取到比较多的信息,包括接口的响应时间、吞吐量、通过率等,在接口的性能测试中很有用。


表中参数的含义如下:


5.      添加响应断言(添加-断言-响应断言)。

查看测试结果时我们会发现有时候网络侧返回数据不符合要求时Jmeter给出的结果仍是通过的。这时候我们需要通过断言来判断网络的返回数据是否符合要求。

比如,我们可以添加一个断言来检查返回信息中是否包含关键字“errMsg”来判断错误信息:

首先添加一个相应断言,在要测试的响应字段中选择响应文本,在模式匹配规则中选择包括,勾选否,在要测试的模式中添加提一条,输入关键字“errMsg”;

意思是检查网络返回结果中不包含“errMsg”的才会判定为通过。

另外我们还可以从监听器中添加一个断言结果,在断言结果中可以查看断言的详细返回信息。



3.    其他补充

使用CSV Data Set Config定义变量。

举个例子,我们想要测试多用户登陆时要怎么做?可以在线程属性中配置多个线程,但是这样只是同一个用户多次登录,多个不同的用户需要输入不同的用户名密码。当然我们可以写多个登录的HTTP请求,每个请求输入不同的参数,但是这样太傻了。

这个时候我们可以通过CSV DataSet Config来定义两个变量代表用户名和密码,然后传入不同的值即可实现多用户的登录:

1、我们在登录的case中添加一个CSV DataSet Config(添加-配置元件-CSV Data Set Config)。


Filename:指定读取用户名和密码的文件,我们会将所有的用户名密码写到该文件中;

FileEncoding::写入用户名密码的文件编码格式,不写的时候默认为ANSI

VaribleNames:定义文本文件中的变量名用户名=user和密码=pwd,变量之间逗号分隔。

 

2、我们到上面Filename的路径下创建该文件并写入用户名密码,用户名和密码之间用逗号分开,不同用户名密码之间换行。


3、到Jmeter的脚本中将原本的用户名密码改为变量名,由于我们使用的是Post方法,所以到Body Data中修改:


http://chatgpt.dhexx.cn/article/YaluvJMW.shtml

相关文章

Xilinx DDR3 —— MIG IP核的原理(APP接口)

DDR3 SDRAM(Double-Data-Rate Three Synchronous Dynamic Random Access Memory)是 DDR SDRAM的第三代产品,DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟&#xff…

APP接口设计规范

APP接口设计规范 效率安全版本兼容性面向对象设计数据格式Json服务端的异常处理https协议 1.效率 APP对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有在开发过程中尽量选择效率高的框架,对数据…

TP6+JWT开发APP接口

1. 开发环境 PHP框架: ThinkPHP6操作系统: MacOsWeb服务器: Nginx 2. APP接口 2.1. 简介 客户端与服务端进行数据交互的通道, 大部分APP接口都是通过HTTP协议通信的 2.2. HTTP通信的三要素 URL 通信地址Method 通信方式(GET|POST|PUT|DELETE)Params 通信的内容 2.3 APP接…

快速开发一个混合APP(Hybrid APP)

混合开发APP(Hybrid APP)简单说就是将原生功能封装成JS接口,前端通过调用接口实现功能。前端使用html来开发APP,可以实现自动更新,一套代码同时生成Android和iOS两端安装包,开发速度快,用户体验…

Hybrid App开发 四大主流平台

Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java、 Object-C、C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性…

whatsapp协议api接口

测试demo:http://39.109.122.117:8081/login Whatsappapi 一、登录注册 登录 发送验证码 效验短信验证码 查询是否封号 获取版本号 查询是否封号(商业版) 发送验证码(商业版) 效验短信验证码(商业…

第一次做APP接口开发过程总结

关于平湖人社APP后台开发总结APP后台接口开发我总结出以下几个部分: 需求分析与整理分析业务需求涉及的模块功能与数据库关联表接口开发文档大致编写并提交产品与APP开发人员 1.主要是webservise 地址:http://XXXX/services/SbcxWebservice?wsdl2.接口函数统一为 sbp_sbcx_XXX…

做APP接口开发过程总结

关于平湖人社APP后台开发总结 APP后台接口开发我总结出以下几个部分: 需求分析与整理 分析业务需求涉及的模块功能与数据库关联表 接口开发文档大致编写并提交产品与APP开发人员 1.主要是webservise 地址:http://XXXX/services/SbcxWebservice?wsdl 2.接口函数统一为 sbp_sbcx…

java性能优化案例——面试可能用得到

一、背景 1.1 业务背景 支付宝卡包存放着用户的会员卡和优惠券。无论是卡券cell,还是卡券详情,都是通过静态模板配置加上动态可变数据,最终呈现给终端用户的。 下面【图1】展现了卡券数据在C端用户的展现形式,【图2】表示了C端…

Java性能优化可算是讲明白了,优化权威指南就是强

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 Java是目前软件开发领域中使用最广泛的编程语言之一。Java应用程序在许多垂直领域(银行、电信、医疗保…

面试官:关于Java性能优化,你有什么技巧

通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能…

JAVA性能优化思路探究,让程序超顺畅

1、背景介绍 一个系统的上线除了常规的功能性测试外,还需要经过严格的性能测试,满足预期的性能指标(常见的有响应时间,tps等),才允许上生产环境。 广义的性能测试一般还包含负载测试(用于测试…

Java接口性能优化实例

Java接口性能优化实例 文章目录 Java接口性能优化实例概述用到的工具和环境工具环境 找瓶颈启示和收获 概述 最近公司的下单接口有些慢,老板担心无法支撑双11,想让我优化一把,但是前提是不允许大改,因为下单接口太复杂了&#xf…

JAVA程序性能优化

制约程序性能的根源 常用的性能评估指标 并发:同一时间多少请求访问:如同一时间10个用户请求,并发就是10TPS:transaction per second:相当于写操作QPS:query per second:相当于读请求&#xf…

Java性能优化的35个细节(珍藏版)

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗&#xff1…

Java 中 10 大简单的性能优化

Java 7 ForkJoinPool和 Java 8 的并行Stream有助于并行化东西,这在您将 Java 程序部署到多核处理器机器上时非常有用。与跨网络上的不同机器进行扩展相比,这种并行性的优势在于您几乎可以完全消除延迟效应,因为所有内核都可以访问相同的内存。…

Java性能优化的七个方向

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 概述复用优化计算优化并行执行变同步为异步惰性加载 结果集优化资源冲…

JAVA性能优化实例

目录 概述 Sql性能优化 多线程 利用内存缓存 功能优化 参考博客 概述 性能优化的几个点,大致可以分为: sql优化使用多线程利用内存,缓存等,将固定不常更改的数据放入在,存取更快的内存当中功能实现逻辑优化 Sql性…

10种简单的Java性能优化学习

10种简单的Java性能优化学习 你是否正打算优化hashCode()方法?是否想要绕开正则表达式?Lukas Eder介绍了很多简单方便的性能优化小贴士以及扩展程序性能的技巧。 最近“全网域(Web Scale)”一词被炒得火热,人们也正在…

Java性能优化实践:分享Java性能优化的实践经验

Java性能优化是一个非常重要的话题,在现代软件开发中扮演着至关重要的角色。在本篇博客中,我将分享一些Java性能优化的实践经验,包括使用JavaProfiler分析程序性能、使用JMH进行基准测试、优化JVM参数等,帮助开发者更好地理解Java…