• 9
  • 9
分享

接口测试需要考虑的点/如何设计接口测试的用例?

接口测试用例编写除了使用功能测试中最基本的等价类,边界值,因果图,错误推测,场景设计等方法外,还要考虑一些其他方面,首先我们要先进行冒烟测试,说白了就是传递正确的参数查看是否返回正确的结果然后还要考虑参数组合:因为参数有必填和非必填,参数的格式、长度,以及数据传输的业务流程中的一些限制,我们要考虑不同的参数组合的情况,以保证能够覆盖到所有的情况以及绕过验证、权限验证、参数是否加密

最重要的是要考虑业务逻辑校验,请求的类型、格式,地址、参数,以及数据库的落地情况(比如测试新增更新的接口时,要看数据的返回是否完整,与数据库进行对比)。

你做过接口测试吗,怎么进行测试的?

做过接口测试,一般我们都是使用jmeter工具来进行接口测试,首先在测试计划中添加一个线程组,然后在线程组中添加一个HTTP请求,然后通过抓包获取接口网址,然后将IP,端口号,路径,请求方式,以及相应的参数手动添加到HTTP请求中,然后在线程组里再建一个察看结果树来查看执行结果。也可以添加一些断言来判断返回结果。然后我们执行HTTP请求,在察看结果树里验证返回内容、格式等是否符合接口文档。

同时我们也可以使用CSV控件来实现小型的接口自动 化来提高接口测试效率。在CSV中添加本地Text的文件路径,TEXT文件中主要包含测试用例的内容及每条测试用例的预期结果,每行包含一条用例,我们需要给用例中的每项内容起一个变量名,配置完毕就可以使用${变量名}来调用了,然后添加响应断言,也是使用${}来调用CSV中的预期结果,最后将线程组中的线程数改一下,这样就可以执行多条用例了,大概就这样。

如何测试相互依赖的两个接口?

首先我们在线程组中添加两个HTTP请求,然后在第一个接口下添加一个正则表达式提取器,然后把我们需要提取的参数使用(.+?)()代表封装了待返回的匹配字符.代表匹配任何字符,+代表匹配一次或多次?代表不要台贪婪,匹配到第一个符合的字符后停止

如何测一个需要登录的接口?

先在网页上登录,然后通过开发人员工具获取登录的cookie参数,然后在使用的时候在HTTP请求前添加HTTP cookie管理器,直接将cookie的参数手动添加到 HTTP cookie管理器中就可以了

结合工具说下你们怎么批量进行接口测试的?

批量进行接口测试我们是通过jmeter中的CSV控件来实现的,首先我们在本地建一个text文件,然后将用例及预期结果添加到文件中,然后在线程组中添加CSV控件,在控件中配置用例每项对应的变量名,然后再添加HTTP请求以及响应断言,通过${}来调用CSV中的变量,最后再把线程组中的线程数调为我们执行用例的数量就可以了。

如何处理cookie和session的?

一种是在录制脚本的时候添加HTTP cookie管理器获取cookie,还有一种就是手动添加cookie的参数到HTTP cookie管理器中

jmeter如何录制脚本?

首先,我们测试计划中添加一个线程组,线程组中添加cookie管理器(如果需要登录的话),然后将浏览器设置好代理,在jmeter控制台添加一个HTTP代理服务器,端口号设置为与浏览器代理端口号一致,把目标控制器选择测试计划线程组,启动HTTP代理服务器,我们在浏览器的操作就可以录制了。

get和post的区别?

get和post本质上都是TCP连接并无区别,由于HTTP协议规定以及浏览器的限制导致在应用过程中有一些不同。

get请求类型主要用于直接获取数据比如查询,搜索,读取。post请求类型需要逻辑处理比如支付、登录、注册。

get请求的参数是附在URL之后,post请求的参数是放在请求体中

get请求有长度限制,一般不超过4KB,post请求理论上没有限制,限制的是服务器处理数据的能力

get请求的数据在URL后可以通过浏览器的地址栏看到,不安全,post请求相对来说比较安全,但是如果post请求不对隐私数据进行加密也是不安全的

get请求的参数会保存在浏览器历史记录上,而post请求的参数不会保留。

对于get请求而言,浏览器会直接把HTTP、header和请求参数一起发送给服务器,而post是浏览器先发送header,服务器响应100后,浏览器再发送请求数据,然后服务器再返回结果。

jmeter用户自定义变量和HTTP请求默认值的作用?

对于一些经常变动又频繁调用的数据,我们一般存放在用户自定义变量中,使用的时候直接使用${变量名}进行调用,而对于一些默认的参数如网址,端口路径等,我们存放在HTTP请求默认值中,如果需要使用,在HTTP请求中那项置空就可以了

如何测试上传图片的接口?

首先我们需要先将上传图片的接口通过jmeter抓到,然后在HTTP请求中输入相关的参数,在下方的files upload中添加图片的本地完整路径及图片的格式就可以上传图片了。

如何测试https的接口?

测试HTTPS的接口我们将HTTP请求中的端口改为443,协议为HTTPS就可以了

jmeter如何过滤?

Jmeter中的HTTP代理服务器中有jmeter的过滤模块,我们把需要过滤的参数放在过滤模式里面就可以了。

什么样的接口是get,什么样的是post?

Get接口比如查询,搜索,读取。post请求比如订单,交易,登录等

你都用过什么断言?

我用过jmeter的响应断言

jmeter你都用过哪些控制器?

循环控制器,计数器

什么是http协议?

HTTP是超文本传输协议,是浏览器在数据传输时必须遵循的协议。它可以将超文本标记语言文档从客户端传输到服务器。

jmeter如何连接数据库?

首先我们需要在测试计划中添加MySQL的配置jar包,然后在测试计划中添加线程组,线程组中添加JDBC connection configration去进行数据库的配置,有数据库连接池,mysql驱动,以及MySQL的账号密码。然后再添加一个JDBC request 输入查询语句进行查询添加一个察看结果树查看结果就可以了。

jmeter如何获取数据库中的数据?

首先我们先将MySQL的连接配置好,然后在JDBCrequest中输入查询语句查询出相应的字段名及字段值,然后给查询的内容重命名,调用的时候使用${变量名_第几行的数据}就可以了。

如何进行参数化?

使用${变量名}进行参数化

什么是接口测试?

接口测试是测试系统组件之间数据传输的一种测试,主要检测系统与系统之间或系统与 内部组件之间的数据正确性。

接口测试的原理是什么?

接口测试的原理就是模拟客户端向服务器发出请求,服务器接收请求之后,对请求做出 处理并把响应结果返回给客户端。

接口文档包含哪些内容?

(1)请求地址

(2)请求方式

(3)请求参数

(4)参数详解(每个参数代表什么意思,如果没有详解就去问开发)

(5)响应结果

(6)结果详解(响应结果中每个参数所代表的意思)

常见的接口协议类型有什么?

最常见的是http接口和https接口,除此之外还有webservice接口、dubbo接口等。

常见的接口测试工具

Jmeter(开源的,接口/性能)、postman、soap UI、load runner(接口/性能)

典型接口的例子:

(1)物流订单信息,一般物流信息都是通过各大物流公司的接口获取到的

(2)通过携程等APP订不同航空公司的机票,机票信息一般都是通过各大航空公司的接获取到的。

(3)12306订票支付的时候,使用微信、支付宝、银行卡支付都是调用的接口

(4)软件实名认证时验证姓名身份证号是否匹配就是调用公安系统的接口

(5)绑卡时需要输入姓名身份证号银行卡号也是调用的银行系统的接口。

什么时候开始接口测试?

一般情况下在单元测试之后,进行集成测试的时候我们进行接口测试,或者在功能测试之前我们会进行接口测试。

一般问有没有做过集成测试,可以理解为有没有做过接口测试

为什么要进行接口测试

(1)现在很多系统都是前后端分离的,从安全层面上来说,只依赖前端进行限制已经完全 不能满足安全需求,因为绕前端太容易了,这种情况下我们需要去测试接口。

(2)因为接口中传输的是数据,所以我们要测试数据的正确性

(3)接口测试能够覆盖功能测试覆盖不到的点,而且接口测试效率更快,覆盖相对更全面, 结合功能测试能够更好的提高测试覆盖率。

接口测试的流程:

(1)首先我们要了解需求,熟悉业务场景

(2)然后根据需求文档,接口文档以及业务场景来编写测试用例。

(3)再进行测试用例的评审,征求开发、测试、产品的意见对用例进行完善

(4)再然后准备测试数据,测试工具以及测试用例

(5)最后执行接口测试,提交bug并验证bug测试完毕后发送测试报告并确定是否能上线

如果没有接口文档我们如何去测试接口?

我们会通过抓包,先把这个接口的信息抓到然后再去测试这个接口

 

作者:佚名

原文链接:http://www.netearn.top/rainNight/detail/225

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 测试流程我们一般在项目进行开立项会(产品经理 项目经理 开发人员 测试人员)的时候进行参与,讨论需求并提出建议,在立项会中制定需求文档,由UI设计原型图,开发根据需求进行编码,我们测试会根据需求文档进行编写测试计划,根据模块的颗粒度划分并编写测试用例以及对用例的评审,开发结束后,测试对主要功能进行冒烟测试,执行测试用例,提交bug开发进行修改,修改成功后关闭bug,进行回归测试,在上线前进行测试总结。用例评审会:【测试人员 测试组长/项目经理 产品经理】 a:组内评审【测试人员 测试组长/项目经理 产品经理 客户】 b:组外评审冒烟测试:对主要功能进行测试回归测试:bug修改后,重新测试查看是...
            0 0 2372
            分享
          •   Redis是一个高性能、内存数据库和缓存系统,在开发和生产环境中被广泛应用。本文将介绍如何进行有效的Redis软件测试,以确保其稳定性、高性能和可靠性。  Redis作为一种非关系型数据库和缓存系统,被广泛用于支持高流量、低延迟的应用。为了保证Redis在生产环境中的可靠性和性能,进行充分的软件测试是至关重要的。本文将提供一些关键的测试步骤 和技巧,帮助您开展有效的Redis软件测试。  单元测试  单元测试是验证Redis各个组件和功能单元的行为是否符合预期的重要手段。在编写单元测试时,应当覆盖各种情况和边界条件,包括数据存储和检索操作、过期策略、并发访问等。使用流行的测试框架 (如JU...
            0 0 706
            分享
          • android app自动化测试框架Appium资料整理1 自动化测试1.1 自动化测试简介自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化测试。从狭义上来讲,自动化测试就是通过工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。1.2 自动化测试的优点提高效率:通过运行自动化测试脚本,就可以在夜间、午休等时间进行测试用例回归,实现无人值守测试,大大提高了测试效率。避免重复工作:每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全...
            11 11 1660
            分享
          • 有的同学可能会想,只要后台数据库表正确迁移完毕且验证完毕,那么前台程序自然不会有什么问题。但是要知道,数据库迁移测试的目标是保证数据正确、一致、可用。我们可以通过编写脚本提取新旧库表数据并使用文本对比工具(例如Beyond Compare)或MD5值对比来验证数据的正确性及一致性。但针对数据的可用性,则需要通过黑盒测试去进一步验证。因此,对于数据迁移而言,黑盒测试是十分重要的一环。我们要在后台验证数据库表正确迁移的基础上,针对性地开展功能测试。一般而言,数据库迁移是伴随着系统功能的迭代而进行的,因此我们进行数据迁移功能测试的前提就是确保新系统本身的业务功能是可用、完善的。如果新系统本身的功能就...
            0 1 3077
            分享
          • 前言你是一个测试,你们团队目前开发模式是前后端分离。某一天,版本V1.0接口评审完,发布在了swagger上,前后端各自进行开发。此时你根据接口文档将新接口迁移到JMeter上,然后开始编写接口测试用例。过了几天,前端先提测了APP,怎么测试前端效果呢, 你想到使用charles抓包,造一些假数据,然后改响应数据。然而界面情况有点多,数据准备起来有点繁琐。这时前端同学向你介绍了Mock工具Rap,他们把接口放在上面,编写mock规则,获得模拟数据进行前端调试。虽然数据也不是很真实,但是类型和结构是对了。又过几天,后端终于提测,连接到测试服务器上运行接口用例,有个接口报错,前端打开价格页也有些显...
            0 0 1940
            分享
      • 51testing软件测试圈微信