组合接口测试(集成测试接口分类)

网友投稿 285 2023-01-07


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

本文目录一览:

接口测试怎么才能做好?

这个问题还是从需求、测试用例设计、执行来说吧。



A.需求

首先要了解这个接口提供的服务的需求定义,那么我们就知道大概测试的结果是啥。同时理论上要先提供接口规范,方便后续测试,以及给调用者联调的一个文档约定。


B.测试用例设计


根据测试的接口规范,基于业务进行场景设计,再结合边界值设计方法、等价类划分等常用设计方法进行用例设计。


1.设计的方向是常规的测试用例设计:协议规范测试、接口入参、接口出参。

协议规范测试:比如HTTP协议:URL地址、Header测试。不过一般情况下,默认调用者按照接口规范正常调用。这个不用过于详细测试。


2.接口入参:参数个数测试(注意是否必传字段),参数值测试(为空、正常值、非法值等,以及首尾有空格是否过滤)。


3.接口出参:至少涵盖一条成功的响应和一条失败的响应,当然我们测试出更多错误码,我们的覆盖率也就更全面。


4.业务场景用例: 这个需要你对于这个接口的业务的了解程度,而且这是最重要的部分。

比如中间使用了缓存服务(第一次缓存没有,是不是直接读数据源,并存入缓存;第二次直接读取缓存是否正确);

比如需要考虑请求外部的接口获取相应的信息的时间损耗(连接不上外部接口,外部接口下线了,外部接口响应太慢);



C.测试用例执行


1.需要你对接口协议有一定的了解,选择适当的开源工具(如postman)或者自己编写脚本进行模拟请求。

2.需要熟悉接口所使用的中间件等知识(比如redis、kafka、mysql数据库)。

3.需要模拟外部接口返回给你现在正在验证的程序的接口。(比如扣费业务,你不可能每测一个业务,就去调真实扣费)。



是web开发接口吗?建议使用Postman

一、什么是接口?

接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

二、 常用接口采用方式:

1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有apipost、jmeter、loadrunner等;

2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和

post等方法,这也是最常用的两种请求方式。可以使用的工具有apipost、jmeter、loadrunner等;

三、前端和后端

前端:网站前端是对网页静态页面的设计,通俗的来说,就是我们肉眼能看的到的东西,当我们浏览网站的时候所看到的页面上的内容几乎都是属于前端,前端的工作就是网站页面,静态的页面是没有后端成分的,前端主要包括html和css外加js等一些样式和布局。

后端: 网站的后端就是动态网站的技术,比如网站上的一些注册登录和一些弹窗,这些都是后端的逻辑,常用的后端语言有php,jsp等,后端的数据库也包含myspl等,都是对后端进行存储数据。

四、 接口测试概念

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等(通俗来说就是,检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期)

五、 接口的组成:

a、接口说明

b、调用url

c、请求方法(getpostput等)

d、请求参数、参数类型、请求参数说明

e、返回参数说明

六、为什么要做接口测试,接口测试的目标

接口其实app和前端交互用的,所以好多人问,为啥做功能测试还要测接口,目标是啥不是多此一举吗?首先我告诉大家,这种想法是错误的

那么举一个例子:

例如一个登陆接口,例如产品上规定用户名6-10个字符数字下划线,但后端没做判断。但我们业务人员测试肯定验证,但只是前端做了校验,后端压根就忘了这个小需求.那么后果来了如果一个懂的直接抓包去篡改你的接口,然后绕过校验,通过sql注入直接随意登录。如果你这是一个下单业务,是不是给公司造成了很大损失

所以此时此刻接口测试目标来了:

1.可能发现客户端没有发现的bug(那么也叫隐藏bug)

2.及早爆出风险(保证质量正常上线)

3.接口稳定了,前端随便改

4.最重要检查系统安全性,稳定性

七、如何进行接口测试

1.使用接口测试工具进行测试,接口测试和接口文档生成工具apipost,接口测试和性能测试工具jmeter

2.接口状态码表示含义

例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)

测试点:

B. 参数组合(传入不同值)

C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)

D. 异常验证(输入异常参数边界值)

接口测试注意的点

接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期,有些情况是功能测试无法覆盖的,所以接口测试是非常必要的。

接口测试分为两种,一种是webservice接口,走soap协议通过http传输,请求报文和返回报文都是xml格式的,测试时通过工具soapUI进行测试。使用情况比较少;另一种http api接口,走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求。

get请求和post请求的区别在哪里呢?网上的答案为:

1、get请求可以在浏览器中请求到,post请求的测试需要借助工具

2、get请求使用url和cookie传参,post的数据放在body中

3、post比get更安全,因为传递的参数在url上是看不到的

4、get请求的url会有限制,而post请求的数据可以非常大

5、一般get请求是来获取数据,post请求是传递数据的

其实,对于现在飞速发展的 互联网来说,上面的说法已经不严谨了。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次表面上看起来,post利用body传参,比get的url传参安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的URL,所以也不再有限制一说了。这么说来,种种区别只有最后一条是最根本的了。

 怎么来测试接口呢?根据什么来测呢?这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的。包括:接口说明、调用的url,请求方式(get or post),请求参数、参数类型、请求参数说明,返回结果说明。这里接口文档生成可以使用apipost接口文档生成工具。有了接口文档后,我们就可以设计用例了,一般接口测试的用例分为以下几种:

1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果

2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以在设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到

3、接口的安全性,这个又分为几种情况:

1)绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问题了。

2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢

3)参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大。

4) 密码安全规则,设置密码时复杂程度的校验。

4、根据业务逻辑来设计用例

用例设计完了,用什么来测试接口呢?我们可以借助一些工具,比如apipost和jmeter。apipost使用比较简单,可以在列表中选择请求方式,在输入框中输入URL,如果是get请求,直接点击发送就可以看返回结果了。

如果是post请求,会涉及到几种参数的上传方式和添加请求头、权限验证还有添加cookie等操作。apipost都可以简单实现

还有一种测试接口的工具是jmeter,用途比较广泛,不但能测接口的功能,还能对接口进行性能测试。比如:压力测试、负载测试等。在jmeter中需要创建线程组,如图:

Apipost官方链接: https://console.apipost.cn/register?utm_source=10008

如何做接口测试

1、可以使用postman软件进行接口测试,这里以较复杂的上传图片的接口为例进行测试,首先打开postman软件选择Post方式,输入后台接口调用地址。

2、然后填写Headers,注意这里的Headers部分不要写任何东西,如果之前是有Content-Type头信息, 那么就会上传失败。

3、接着填写Body,选择form-data,填写Key后台规定的接收文件的名称参数,格式选择为File,此时value会自动变成选择文件。

4、最后点击Send,可以发现下方返回了接口的响应,说明上传图片是成功的,这样简单的图片上传的接口测试就完成了。

测试工程师面试,接口测试问题总结

1、什么是接口?

2、什么是接口测试?

3、接口组成的要素有哪些?

4、Python 的 requests 包是干什么的?

5、如何使用 Python 的 requests 包?

6、为什么开展接口测试?

7、为什么要写接口测试用例?

8、接口测试用例设计主要考虑哪些?

9、接口测试用例包含哪些内容?

10、接口测试如何设计用例?

11、通用接口用例设计?

12、接口测试报告包含哪些内容?

13、测试指标范围包含哪些?

14、做接口测试运用过哪些测试工具?

15、抓包工具用过哪些?

16、为什么进行抓包测试?

17、TCP/IP 参考模型有哪几层?

18、常用协议的端口号?

19、常见的状态码有哪些?

20、你们公司的接口测试流程是怎样的?

21、请详细阐述接口测试和 UI 测试在测试活动中是如何协同测试的?

22、接口测试注意事项?

23、接口测试执行中对比数据库吗?

24、请简述一下 cookie、session 以及 token 的区别?

25、谈谈你对 HTTP 协议的了解?

26、你对 http 请求跟 webservice 请求的了解?

27、在接口测试中关联是什么含义?如何使用 Postman 设置关联?

28、接口自动化测试框架一般分为几层?

29、测试框架里如何做到数据和代码分离?

1、什么是接口?

接口就是 API,意思是应用程序编程接口。

接口本质上是程序开发的函数和方法,提供参数和返回值。

2、什么是接口测试?

接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。

3、接口组成的要素有哪些?

接口访问的地址、请求的方法、参数、返回值

(1)接口访问的地址 协议://IP 地址或域名:端口号/应用名/功能名

(2)请求的方法 get、post 等

(3)参数 用户使用接口时,需要向接口提供的数据。

(4)返回值 接口给用户的反馈结果。

4、Python 的 requests 包是干什么的?

requests 是一个 HTTP 库,作用是发送 HTTP 请求,获得响应,往往使用在网络爬虫,接口自动化测试中。

5、如何使用 Python 的 requests 包?

(1)安装 Python

(2)安装 requests 模块

(3)创建.py 文件

(4)导入 requests 模块

(5)编写 Python 代码

(6)调用 requests 方法

6、为什么开展接口测试?

接口测试属于集成测试、测试接入越早,就越能在项目早期发现问题,修复问题成本降低。

接口测试非常快速,UI 自动化执行一个测试用例 10s 左右,接口用例执行一般毫秒级。

7、为什么要写接口测试用例?

(1)理清思路,避免漏测和重复测试。

(2)提高测试效率、跟进测试进度、告诉领导做过、跟进重复性工作。

(3)更好的记录问题、发现问题、复现问题、同时这也是接口测试流程中的一个产物。

8、接口测试用例设计主要考虑哪些?

(1)功能是否正常。

(2)功能是否按照接口文档实现、是否依赖业务、异常情况(参数异常、数据异常)、安全测试等。

9、接口测试用例包含哪些内容?

用例名称、接口地址、请求方式、前置条件、描述、请求头部、请求参数、状态码、预期返回结果

10、接口测试如何设计用例?

接口测试一般考虑入参形式的变化和接口的业务逻辑。

一般设计接口测试用例采用等价类、边界值、场景法居多。

接口测试用例设计思路:

(1)接口业务逻辑测试,接口逻辑测试是指根据业务逻辑,输入参数,输出值的描述,对正常输入情况下所得输出值是否正确的测试,也就是测试对外提供的接口服务是否正常。

(2)模块接口测试,模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑正确性而进行的测试模块,接口测试主要包括以下几个方面

a.鉴权码 token 异常(为空、没有、错误、过期)

b.其他参数的异常,必填项的检查,参数的长度、类型、格式异常。常规的参数有数字,字符串,日期;参数长度,位数、身份证、电话的长度;参数的类型,数字精度,字母,中文,带空格的参数,特殊字符;日期格式,日期年月日,年月日时分秒,日期格式(包含/-:等)

c.错误码异常覆盖

11、通用接口用例设计?

(1)通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

(2)参数组合:现在有一个操作商品的接口,有个字段 type,传 1 的时候代表修改商品,商品 id、商品名称、价格有一个是必传的,type 传 2 的时候是删除商品,商品 id 是必传的,这样就要测参数组合了,type 传 1 的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

(3)接口安全:绕过验证,比如说购买了一个商品,它的价格是 300 元,那我在提交订单时候,我把这个商品的价格改成 3 元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功。参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。密码安全规则,密码的复杂程度校验。

(4)异常验证:所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是 10 的,传 11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

12、接口测试报告包含哪些内容?

系统接口概况、测试目的与范围、测试工具与资源、测试记录及结果分析(单场景接口、混合场景接口)、测试结论

13、测试指标范围包含哪些?

(1)被测接口接收请求和返回报文。

(2)被测接口返回状态、被测接口对应业务逻辑处理、涉及数据沉淀的处理、复杂场景下多个接口串联交互。

14、做接口测试运用过哪些测试工具?

(1)Postman

(2)JMeter

(3)SoapUI

(4)Python + requests

(5)Java + HttpClient

(6)Java + OkHttp

15、抓包工具用过哪些?

(1)Fiddler

(2)Charles

(3)Wireshark

16、为什么进行抓包测试?

有些时候公司没有标准的接口文档,测试人员只能抓包来获取接口信息。

抓包可以迅速找到请求,通过抓包可以查看整个请求过程,以及响应过程,可以通过抓包来分辨前台还是后台 bug。

通过抓包,可以查看是否有敏感信息泄露,比如用户密码和个人账号信息等数据。

通过抓包进行测试,拦截请求,修改请求数据,查看对应响应结果,抓包本身就是接口测试的一部分。

17、TCP/IP 参考模型有哪几层?

应用层、传输层、网络层、网络接口层

18、常用协议的端口号?

(1)21/tcp FTP 文件传输协议

(2)22/tcp SSH 安全登录、文件传送(SCP)和端口重定向

(3)23/tcp Telnet 不安全的文本传送

(4)25/tcp SMTP Simple Mail Transfer Protocol(E-mail)

(5)69/udp TFTP Trivial File Transfer Protocol(微型文件传输协议)

(6)80/tcp HTTP 超文本传送协议(WWW)

(7)110/tcp POP3 Post Office Protocol(E-mail)

(8)443/tcp HTTPS used for securely transferring web pages

(9)3389/tcp 远程访问 5631/tcp

(10)5632/udp pcanywhere 端口号

(11)1433 SqlServer 服务端口号

(12)1521 Oracle 服务端口号

(13)3306 Mysql 服务端口号

(14)8080 Tomcat 默认服务端口号

19、常见的状态码有哪些?

(1)1XX 信息提示,用于指定客户端相应的某些动作。

(2)2XX 成功,用于表示请求成功。

(3)3XX 重定向,用于移动的文件并且常被包含在定位头信息中制定的新的地址信息。

(4)4XX 客户端错误,用于指出客户端的错误。

(5)5XX 服务器错误,用于指出服务器的错误。

20、你们公司的接口测试流程是怎样的?

(1)从开发中取得接口文档,了解接口业务,主要包括接口地址、请求方式、入参、出参、返回格式等信息。

(2)使用 Jmeter 进行接口测试,创建一个线程组,然后建立一个 http 请求默认值,再新建很多 http 请求,一个请求是一个用例,输入相应接口路径、访问方式、参数等,创建断言和察看结果树。

(3)最后调用并执行测试用例,编写测试报告。

(4)在做接口测试的时候遇到过很多问题,都是自己独立解决的,比如返回值乱码(修改 Jmeter 的配置文件为 UTF-8)。

21、请详细阐述接口测试和 UI 测试在测试活动中是如何协同测试的?

接口测试和 UI 测试这两块其实是有一部分是重叠的,UI 测试是通过前端写的界面来调用接口,而接口测试是直接调接口。所以排除前端的处理的逻辑和调用的正确性,在理论上接口测试是可以覆盖所有的 UI 测试。但实际过程中,如果只是在接口层覆盖所有的业务流,在 UI 上只测试前端的逻辑,最终的结果可能会是忽视很多原有的功能点,导致了 UI 测试的不充分。所以存在多人分工且时间充分的时候可以尝试接口去做业务流的全覆盖,否则不要轻易尝试。

22、接口测试注意事项?

(1)改变请求参数,看响应结果是否和接口文档一致。

(2)查看参数是否有敏感信息(比如个人账户信息,资金信息)。

(3)查看是否对关键参数进行加密处理(密码信息)。

(4)所有列表页接口必须考虑排序值。

(5)接口返回的图片地址能否打开,图片尺寸是否符合需求。

(6)接口有翻页时,页码与页数的异常值测试。

(7)当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求每个接口入参的默认值、异常类型、非空校验。

(8)入参支持多个值时,要考虑传的值的个数多的情况下,接口会不会报错。

23、接口测试执行中对比数据库吗?

肯定要对比,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查。

24、请简述一下 cookie、session 以及 token 的区别?

cookie 数据存放在客户的浏览器上、session 数据放在服务器上、token 是接口测试时鉴权码,一般情况下登陆后才可以获取到 token,然后在每次请求接口时需要带上 token 参数。

cookie 不安全,别人可以分析存在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session 可以将登录信息等重要信息存放为 session,其他信息可以保存在 cookie。

25、谈谈你对 HTTP 协议的了解?

超文本传输协议,端口为 80,是由请求和响应两部分组成的。

请求是由请求头,请求行,请求正文组成;响应是由响应头、响应行、响应正文组成。

面向安全的话使用 https。

26、你对 http 请求跟 webservice 请求的了解?

(1)http api 接口:是走 http 协议,通过路径来区分调用的方法,请求报文都是 key-value 形式的,返回报文一般都是 json 串,有 get 和 post 等方法,这也是最常用的两种请求方式。可以使用的工具有 postman、RESTClient、jmeter、loadrunner 等。

(2)webservice 接口:是走 soap 协议通过 http 传输,请求报文和返回报文都是 xml 格式的,都是通过工具才能进行调用与测试。可以使用的工具有 SoapUI、jmeter、loadrunner 等。

27、在接口测试中关联是什么含义?如何使用 Postman 设置关联?

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行。

在 Postman 中设置关联的步骤如下:

(1)通过正则表达式提取的方式或 json 取值的方式把下一个接口需要的信息从上一个接口截取出来。

(2)使用设置全局变量的代码把取出来的值保存到全局变量里。

(3)在下一个接口中,使用(全局变量)代替要替换的静态值。

28、接口自动化测试框架一般分为几层?

自动化测试框架一般分为 5 层(配置层,脚本层,数据层,测试报告层,驱动层)

接口项目工程规划大致可分为几类,首先是测试结果类,比如说叫 test_rusult,里面存放一些比如日志文件,测试报告。然后是测试用例 testcase,里面分模块存放测试用例。接下来是公共方法类,比如说叫 public,或者是 tools,里面存放一些,读取 excel 数据的方法,发送 http 请求的方法,收集 log 日志的方法,发送邮件,操作数据库等方法。还有就是配置文件类,比如说叫 config,里面存放一些指定运行部分用例的配置文件,连接数据库的配置文件。最后是写一个 run 方法,运行所有的用例。

29、测试框架里如何做到数据和代码分离?

第一种:写在 excel 表格里,像这种主要是读取 excel 数据有点麻烦,常用的用来读取 excel 的第三方库有 openpyxl,xlrd 等。当然读取 excel 数据最好用的还是用来做数据分析的 pandas 模块,不用写那么多 for 循环。

第二种:数据存放到 yaml 文件里,一个模块或者是一个功能写一个 yaml 文件,最后写个读取 yaml 文件的公共方法就行了。yaml 格式的文件比较简单。

第三种:存放在数据库里面。

第四种:数据存放在 json 文件里。

接口测试痛点及解决方式?

我们在进行接口测试的时候,经常会碰到一些痛点,下面我们就整理下接口测试过程中的常见痛点和解决方式
直接从传智播客整理好的资料截取的。
①测试环境数据被改动导致接口测试失败
支持实时从数据库查询最新的数据
②测试数据写死导致的接口用例执行失败
对数据进行参数化
③ 检查点不够充分
增加各种校验点:正常检查点、异常检查点、不为空检查点
④接口测试执行后产生的数据会导致下面的用例执行失败
执行结束后支持删除指定数据
⑤接口测试执行超时等非404错误导致的失败
支持失败重跑功能
⑥不能定时执行
使用jenkins进行持续集成
⑦线上环境接口调用失败
支持线上环境接口的监控
⑧依赖于第三方接口数据不好创建
支持数据的mock
⑨单个接口测试通过,但业务还是有bug
组合多个接口为一个业务场景 关于组合接口测试和集成测试接口分类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 组合接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于集成测试接口分类、组合接口测试的信息别忘了在本站进行查找喔。

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

上一篇:公共POI导出Excel方法详解
下一篇:总线接口测试工具(网络接口测试工具)
相关文章

 发表评论

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