关于批量http接口测试工具的信息

网友投稿 265 2022-12-30


本篇文章给大家谈谈批量http接口测试工具,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享批量http接口测试工具的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

常见的接口测试工具有哪些?

接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
一、常见接口:
1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
二、前端和后端:
在说接口测试之前,我们先来搞清楚这两个概念,前端和后端。
前端是什么呢,对于web端来说,咱们使用的网页,打开的网站,这都是前端,这些都是html、css写的;对于app端来说呢,它就是咱们用的app,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,比如说非空校验,咱们在页面上操作的时候,这些业务逻辑、功能,比如说你购物,发微博这些功能是由后端来实现的,后端去控制你购物的时候扣你的余额,发微博发到哪个账号下面,那前端和后端是怎么交互的呢,就是通过接口。
前面说的你可能不好理解,你只需记住:前端负责貌美如花,后端负责挣钱养家。
三、什么是接口测试:
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
OK,上面是百度百科上说的,下面才是我说的
其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_∩)O哈!),现在找工作好多公司都要求有接口测试经验,也有好多人问我(也就两三个人)什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
我为啥说接口测试比功能测试简单呢,因为功能测试是从页面输入值,然后通过点击按钮或链接等传值给后端,而且功能测试还要测UI、前端交互等功能,但接口测试没有页面,它是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,所以它只需测入参和出参就行了,相对来说简单了不少。

接口自动化测试工具有哪些?

1、CTS批量http接口测试工具,CTS 测试基于Android instrumentation 测试, 其又基于JUnit 测试。说白了, CTS 就是一堆单元测试用例。这也是Java 语言的擅长部分。
2、 Monkey工具,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
3、ASE,ASE 意思为Android 脚本环境, 即批量http接口测试工具我们可以通过脚本(比如Python)调用Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java 部分), 并用python 脚本调用这些API, 从而实现丰富的测试功能。用于API 部分可以访问到Android 全部API, python 又能灵活部署测试,所以ASE 的扩展性非常好。
4、Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用
进行测试。Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text
等等。 http://mag.big-bit.com/
分层的自动化测试

这个概念最近曝光度比较高,传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。
相信测试同学对上面的金字塔并不陌生,这不就是对产品开发不同阶段所对应的测试么!我们需要规范的来做单元测试同样需要相应的单元测试框架,如java的Junit、testNG,C#的NUnit ,python 的unittest、pytest 等,几乎所有的主流语言,都会有其对应的单元测试框架。
集成、接口测试对于不少测试新手来说不太容易理解,单元测试关注代码的实现逻辑,例如一个if 分支或一个for循环的实现;那么集成、接口测试关注的一是个函数、类(方法)所提供的接口是否可靠。例如,我定义一个add()函数用于计算两个参数的结果并返回,那么我需要调用add()并传参,并比较返回值是否两个参数相加。当然,接口测试也可以是url的形式进行传递。例如,我们通过get方式向服务器发送请求,那么我们发送的内容做为URL的一部分传递到服务器端。但比如 Web service 技术对外提供的一个公共接口,需要通过soapUI 等工具对其进行测试。
UI层的自动化测试,这个大家应该再熟悉不过了,大部分测试人员的大部分工作都是对UI层的功能进行测试。例如,我们不断重复的对一个表单提交,结果查询等功能进行测试,我们可以通过相应的自动化测试工具来模拟这些操作,从而解放重复的劳动。UI层的自动化测试工具非常多,比较主流的是QTP,Robot Framework、watir、selenium 等。
为什么要画成一个金字塔形,则不是长方形 或倒三角形呢? 这是为了表示不同阶段所投入自动化测试的比例。如果一个产品从没有做单元测试与接口测试,只做UI层的自动化测试是不科学的,从而很难从本质上保证产品的质量。如果批量http接口测试工具你妄图实现全面的UI层的自动化测试,那更是一个劳民伤财的举动,投入了大量人力时间,最终获得的收益可能会远远低于所支付的成本。因为越往上层,其维护成本越高。尤其是UI层的元素会时常的发生改变。所以,我们应该把更多的自动化测试放在单元测试与接口测试阶段进行。
既然UI层的自动化测试这么劳民伤财,那我们只做单元测试与接口测试好了。NO! 因为不管什么样的产品,最终呈现给用户的是UI层。所以,测试人员应该更多的精力放在UI层。那么也正是因为测试人员在UI层投入大量的精力,所以,我们有必要通过自动化的方式帮助我们“部分解放”重复的劳动。
在自动化测试中最怕的是变化,因为变化的直接结果就是导致测试用例的运行失败,那么就需要对自动化脚本进行维护;如何控制失败,降低维护成本对自化的成败至关重要。反过来讲,一份永远都运行成功的自动化测试用例是没有价值。
至于在金字塔中三种测试的比例要根据实际的项目需求来划分。在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。

【接口测试】0 接口测试工具Postman简介

从今天开始,会持续更新一款接口测试必备工具-postman的系列使用文章,每天会更新一篇postman的使用技巧,希望对工作中用得到该工具的同学有所帮助。

Postman 最早是google的一个插件存在的,但是又google退出中国以及postman团队对工具的定位,主攻pc端app的开发及优化,现在的google插件已经很少再使用了,postman虽然是一个商用软件,但是对于我们普通用户来说,基本功能完全够用的。

Postman 从最初设计上就是为接口测试而生的,所以在程序员中广泛使用,在开发调试网络程序时跟踪一些网络请求,能够高效的帮助后端开发人员独立进行接口测试。

我们来看一下postman的主要功能:

1、Postman是一款功能强大的网页调试、HTTP请求发送及接口测试用例运行的工具

2、能够模拟各种HTTP Request如GET、POST 、header、 PUT、 DELETE…等等

3、请求中还可以发送文件(图片、文本文件等)、额外的header等,实现特定的接口测试

4、能够高效的帮助后端开发人员独立进行接口测试

5、Postman提供了云服务,支持数据同步及团队协作等

6、提供了丰富的HTML格式的报告模板

7、不仅仅进行接口测试,而且是一个API管理工具

8、Postman是一款最常见的REST风格接口测试工具。

9、.................

在后面的系列文章中包括但不限于下面的专题:

1、Postman 工具的安装及注册

2、Postman接口测试的流程

3、Postman 发送get请求

4、Postman 发送post请求-x-www-from-urlencoded格式参数使用

5、Postman 发送post请求-form data格式参数使用(file文件上传)

6、Postman 发送post请求-Json格式参数使用

7、Postman 环境变量的使用

8、Postman pre-requests的使用

9、Postman test断言功能的使用

10、Postman Runner的使用

11、Postman Data数据文件处理

12、Postman monitor功能使用

13、Postman Newman命令行工具的使用

14、Postman与Jenkins集成使用

15、Postman进行Soap webservice接口测试

16、Postman使用mock进行挡板测试(1)

17、Postman使用mock进行挡板测试(2)

..............

暂时先规划这么多,后面在写的过程中,遇到好的点,会增加进来,今天就先写到这。

使用Jmeter进行http接口性能测试

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其批量http接口测试工具他的工具批量http接口测试工具了,这里推荐功能强大的JMeter自动化测试工具

Apache JMeter - Apache JMeter™

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面就以上图的Restful类型的接口为例简单介绍使用Jmeter进行接口测试的方法。

获取某个具体网关设备的基本信息。

请求

方法批量http接口测试工具:GET

URI:/api/gatewaygateway_id

参数:

在HTTP请求(http request)的头部(header)添加Userid和Token字段作为用户验证字段

响应

返回值:JSON格式的网关信息

参数:

.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改批量http接口测试工具了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

3. 添加线程组

右键左边树中的测试计划“Apitest”节点,“添 加”→”Threads”→”线程组”

添加成功后,“Apitest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

4. 添加http默认请求:(用来配置公共参数,不是http请求)

右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后

添加成功后,线程组”节点下多了“HTTP请求默认值”节点

这里可以设置主机地址等一下公共参数,比如我们的例子中请求路径前面都是主机地址+index.php,就可以统一在"http请求默认值"里设置

填写默认请求名、服务器、默认请求路径,保存测试计划。

5.添加http请求信息头

这一项并不是必须的,只不过我们的例子中使用了Userid和Token放在HTTP请求头中用作用户验证

右键“Apitest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

6. 添加http请求

右键“Apitest”,选择“添加”→ “Sampler”→“HTTP请求”

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

填写完成,保存测试计划

7. 添加监听器:

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX”

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

添加成功后,“线程组”下增加了几个节点

8. 试运行

点击执行

可以查看各个“监听器”的结果

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示批量http接口测试工具你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

样本数目:总共发送到服务器的请求数.

最新样本:代表时间的数字,是服务器响应最后一个请求的时间.

吞吐量:服务器每分钟处理的请求数.

平均值:总运行时间除以发送到服务器的请求数.

中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.

JMeter教程:使用CSV文件完成批量接口测试

当我们在工作中进行接口测试时,项目的接口肯定不止一个,而是很多很多。而且每个接口都需要进行正确参数,错误参数,参数为空,特殊字符等各种场景来进行测试接口是否能够正确返回所需的响应值。如果需要进行回归测试,则工作量则更大了。如果只需要使用一份CSV文件完成所以的接口测试,那就更方便且更好管理接口。

        那么我们该如何通过JMeter来完成批量测试呢? 我们先建立一个较为简单的方式进行测试脚本观察一下。

        以一个获取创建订单时的【省/市/区信息】接口:api.test.XXXXXX.com/api/XXXX/XXXX/getAddress 请求方法:post 请求参数:type,code为例:

1.添加线程组

    测试计划右键选择添加——线程用户——线程组。

     Setup线程组: 用于执行预测试操作

     tearDown: 用于执行测试后操作

     线程组: 一般测试接口时添加的线程,可以把它看做一个虚拟的用户组,线程组中的每一个线程都可以理解为一个虚拟用户
2.添加HTTP信息头管理器

     线程组右键选择添加——配置元件——HTTP信息头管理器
    如果接口信息头定义了值的话,需要放到信息头管理器里面,例如:用户token,公共参数等。
3.添加HTTP请求

     线程组右键添加——取样器——HTTP请求
     协议: 默认HTTP协议,可不填写,若为HTTPS协议需要填写HTTPS。

     服务器名称或IP: 填写接口域名

     端口号: 默认HTTPS请求的80,若为HTTPS请求需要填写443

     方法: 直接选择接口的请求方法:GET,POST,PUT,DELETE即可。

     路径: 填写接口的具体路径    

     参数: 点击下方导航栏添加按钮,在已经添加的数据栏填写参数名,参数值。    
4.添加察看结果树

     线程组右键添加——监听器——察看结果树
    左边:展示请求名,绿色请求结果表示请求成功,红色请求结果表示请求失败。

    右边:展示请求值,包括取样器结果,请求头,请求体,响应头,响应体。

以上步骤能够确保接口正确的进行访问并返回对应的返回值。

完成以上步骤后,下一步就是要把上面步骤的所有的值以参数的形式传递给JMeter脚本,使我们能够以参数化的形式对接口进行批量测试。

5.添加循环控制器

     线程组右键添加——逻辑控制器——循环控制器,循环控制器添加后需要把【HTTP信息头管理器】【HTTP请求】移到【循环控制器下】
    循环次数:运行脚本后循环控制器下的HTTP请求将执行的次数。例如:循环控制器的计数为1,则发送HTTP请求1次;计数为5,则发送HTTP请求5次。设置为永远则需要手动停止请求,否则不会停止请求。
6.在循环控制器下添加CSV配置文件

     循环控制器右键添加——配置元件——CSV数据文件设置,CSV文件里面定义接口所需要动态取值的参数,例如:URL,路径,请求方法,接口参数等。
a)如何创建CSV文件?电脑桌面新建TXT文档,更名为:测试参数文档.CSV(TXT后缀需要变更为CSV),打开CSV文件新增数据。

b)文件内参数如何书写?第一行定义接口所需动态参数,自第二行起填写接口详细值。

caseSeq: 定义接口序号

apiSeq: 每个接口序列

apiName: 接口名称

url: 接口域名

api: 接口地址

function: 接口请求方法

purpose: 描述接口验证类型

parameter: 接口所需参数拼接,以:“code=500000type=city”的形式,参数间以“”连接
c)csv数据文件如何设置

文件名: 点击浏览后选择本地的CSV文件

文件编码: 一般情况下无需设置

变量名称:

“caseSeq,apiSeq,apiName,url,api,function,purpose,parameter”,参数之间需要用英文的逗号隔开,注意参数不要写错。

忽略首行: True则不执行CSV文件的首行,False则执行CSV文件首行。

分隔符: 英文逗号,无需变更

是否允许带引号: 设置True和False以当前CSV文件都能正常执行

遇到文件结束符再次循环: True则在设置的循环次数内一直循环,False则CSV文件所有数据循环一次后就停止。

遇到文件结束符停止线程: True则在设置的循环次数内执行到CSV文件数据为空时停止发送HTTP请求,False则在设置的循环次数内执行到CSV文件数据为空时继续执行。

线程共享模式: 选择所有现场即可

综上: 本次CSV文件设置时:循环次数“永远”,忽略首行“True”,是否允许带引号“False”,遇到文件结束符再次循环“False”,遇到文件结束符停止线程“True”,线程共享模式“所有现场”
7.其他配置文件需要修改写入形式

     HTTP信息头管理器:除必要参数外,添加:“Content-Type=application/x-www-form-urlencoded”,使用Json参数需要用到
HTTP请求:名称设置为:“${caseSeq}_${apiSeq}_${apiName}”动态取CSV文件里面配置的参数信息;IP:“${url}”;方法:“${function}”;路径:“${api}”,消息体数据:“${parameter}”消息体数据和参数只能设置一种,不能两种同时设置。
8.执行CSV文件,查看结果

     可以看到左边能够很清晰的反应接口执行的信息,右边可以很明确的反应接口返回的数据。并且CSV文件内可以设置众多接口的不同验证方式,很方便且很适合日常工作使用。希望以上内容能给大家提供帮助,谢谢。 关于批量http接口测试工具和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 批量http接口测试工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、批量http接口测试工具的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java将一个目录下的所有文件复制n次
下一篇:网上订餐系统接口设计(订餐系统概要设计)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~