• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •    软件的概述  1、软件生命周期  先来了解软件生命周期的全过程:  下面对软件生命周期各个过程进行逐一解析:  (1)问题定义:由软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。  (2)需求分析:对软件需求进行更深入的分析,划分出软件需要实现的功能模块,并制作成文档。(需求分析说明书)  (3)软件设计:在需求分析结果的基础上,对整个软件系统进行设计,包括系统框架设计、数据库设计等。(概要设计、详细设计)  (4)软件开发:在软件设计的基础上,选择一种编程语言进行开发。  (5)软件测试:软件开发完成后对软件进行测试,以查找软件设计与软件开发过程中存在的问题并加以修正。 ...
            0 0 362
            分享
          •   9月9日,李佳琦在直播间推销“花西子”79元的眉笔时,有弹幕留言说太贵了。然后李佳琦直接开始和弹幕的对线,他反问:哪里贵了?这么多年都是这个价格,不要睁着眼睛乱说,国货品牌很难的……哪里贵了?”  随后,李佳琦又继续说到:“有的时候找找自己原因,这么多年了工资涨没涨,有没有认真工作?” 也正是因为这句话,引发了一众网友的巨大不满,随即在网上引起了轩然大波。  事件发酵了整整一周,李佳琦事件还没有终结,大家仍旧在网上玩梗,各大国货品牌也趁势做了一波儿营销。  李佳琦的事件让我记起来了《了不起的盖茨比》开头第一句话,“我年纪还轻,阅历不深的时候,我父亲教导过我一句话,我至今还念念不忘—每逢你想...
            0 0 383
            分享
          • 随着技术和数字化的快速发展,企业努力确保其应用程序在所有浏览器和平台上流畅运行。在今天的情况下,企业依靠互联网存在来提高他们的投资回报率并扩大他们的在线影响力。这就是为什么大多数 Web 应用程序都设计为与多个浏览器兼容的原因。这对于任何响应式 Web 应用程序都非常重要,因为必须确保应用程序在任何给定时间与每个浏览器和浏览器版本兼容。尽管如此,跨浏览器测试还是被忽视了,因为开发人员在将跨浏览器测试纳入QA工作流程时面临许多挑战。随着时间的推移,客户的注意力持续时间越来越短,如果网站加载看起来有问题,他们会毫不犹豫地按下浏览器上的后退按钮。那么,有什么解决办法让Web应用程序和网站在每个浏览器...
            0 0 562
            分享
          •   单元测试是一个伟大的发明,同时也是一个操蛋的发明。只要团队碰它,几乎很难全身而退。  如果是我们自己写的代码,那么,写写单元测试也无伤大雅。但我们绝大多数人,都是跟在别人后面打扫狗屎,或者是留给别人一堆狗屎。这时候,单元测试写起来,就有一种不情不愿的味道。  没错,就是不想写!  为了应付所谓的指标,我们要给那些遗留代码,将要发臭的代码上一剂良药:那就是自动化。假如这些糟心的代码,大部分交给机器去写,我想很多人是非常乐意的。  squaretest  有很多这样的工具,比如IDEA自带的。但是它只能生成一些表面功夫的东西,也就是生成一个骨架而已。  说实话,并没有什么鸟用。根本就没减少我多...
            0 0 335
            分享
          •   在我看来压力测试的压测对象可以分为UI,接口及数据库三个部分吧,对界面及接口进行压测还算熟悉,定位性能瓶颈,对数据库SQL执行压测也是需要做的工具呢?还是Jmeter。  1、将需要用到的链接Oracle的架包放到jmeter中  在数据库服务器安装路径下,找到ojdbc5.jar,D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib  拷贝到jmeter/lib中。  2、配置Jmeter  (1)新建线程组  鼠标右击测试计划,选择 添加--Thread--线程组。  (2)添加JDBC Connection Configurati...
            0 0 1012
            分享
      • 51testing软件测试圈微信