CSDN最牛篇:接口测试的简介及测试用例的设计

187 篇文章 15 订阅
121 篇文章 14 订阅

一,什么是接口

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

二,接口的作用

        作为一个互联网公司,很多资源和信息需要内部共享或外部流通,那相关的数据就需要通过接口来传输。

三,接口理解

        API接口是Application Programming Interface的简称,是一些预先定义的函数,包括接口地址、传入参数和返回参数。

        站在非研发角度可以简单理解为,当需要访问某些数据,正常状态下传入合格参数,会收到该数据范围内的返回参数。

        站在研发角度:

        接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。 

        接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。

四,接口工具

        1,postman   ---> Postman 的应用

是谷歌开发的一款接口测试软件,它使用简单,功能强大,能够发送任何类型的HTTP请求 (GET, HEAD, POST, PUT..),可以进行文件上传、响应验证、变量管理、环境参数管理,还可以批量管理和运行用例,并支持用例导出、导入,可以进行接口的自动化测试。

缺点是自动化断言不够强大,不能和jenkins、代码管理库进行持续集成测试。

       2,jmeter 

 是一款100%纯Java编写的免费开源工具,主要用来做性能测试,但也可以做接口测试,配合后置处理器与断言,可以满足大部分的接口测试场景,JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本,通过jmeter+ant+jenkins可以实现接口和性能自动化测试。

        3,soapUI 

是一个开源测试工具,通过soap/http来检查、调用,实现Web Service的接口和性能测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。

五,接口的样子

        1,可以参照微信小程序开发APIhttps://developers.weixin.qq.com/miniprogram/dev/api/

        2,下图讲解接口的扭转

六,接口文档

        接口说明:

          接口功能:本接口用于获取用户的token信息 ---登录。

          接口请求地址:

https://xingzoushamodewoniu.com/long/api/login

            请求头 :

请求头请求方式说明
Content-Typeapplication/json请求方式

        请求方式: POST

        参数类型 :JSON

        请求示例:绝大多数为json,格式自定

{  "account": "小白龙",  "password": "123456",  "clientId": "long",  "responseType": "code"}

        请求参数说明

字段名字段说明字段类型是否必填
account用户名varchar(30)
password密码int(15)
clientId客户编号varchar(50)
responseType响应类型varchar(50)

        响应示例

        成功响应编码:

{  "code": "200",  "message": "OK",  "data": {    "code": "4dd529b3-c4b0-4066-a363-742c5b6b6e74_generate_token",    "accessToken": "eyJhbGciOiJSUzI1NiJ9.eyJhY2NvdW50SWQiOiJVNjA3NkIwMTI0Q0VERkQwMDAxMTdFREU3IiwiZXhwIjoxNjM5NDY1NzYzLCJpYXQiOjE2MzkyMDY1NjN9.ZHkW6j6rfbyyRQ5ZSRW_Z1nRTiYqyiWgSINBEZA99UMw92H1eiy4JxxC6n3AIAcE3Y9j_p8ZNTtJWIsSlsFbOZfmAuOr2ih4oR0tpjCWLU1UTesVmn7tCkeTpbmjeNJolcd4X7knKIKuXyi88SC6ZIhMJRE1ZTI3eK4hJUCi6Rx50lcHvjV_HX2ZHqEly5wqvr_jQ0ZWXquNlGTrPRXofQ6cLawVea8Z_EnXermECQrjWpRelhKYyl2hlqGd48n46avHFAaxp3UZhy1TeE_xeLxYMaBOpUADcPaezSj2Q_Qbq4T24w83iV2JwGAKAVPMQgBjn68IYuucS-j7fxXqFQ",    "accountId": "U6076B0124CEDFD000117EDE7"  },  "extra": null}

响应参数说明

接口返回码接口返回描述
200成功
201请求参数错误
202密码错误

七、抓包工具抓取接口

        借助工具(Fiddler、Charles、Proxyman、Wireshark、Tcpdump、控制台{F12})抓取以下内容

General

Request URL: https://xingzoushamodewoniu.com/long/api/login

Request Method: POST

Status Code: 200 OK

Remote Address: 127.0.0.1:7367

Referrer Policy: strict-origin-when-cross-origin

Response Headers

Access-Control-Allow-Origin: *

Connection: keep-alive

Content-Encoding: gzip

Content-Type: application/json; charset=utf-8

Date: Sat, 11 Dec 2021 07:14:39 GMT

Server: openresty

Set-Cookie: ac=ed09abaa400c19fff38a588d6c412c21; expires=Sun, 11-Dec-2022 07:14:39 GMT; Max-Age=31536000; path=/

Transfer-Encoding: chunked

Vary: Accept-Encoding

X-Powered-By: PHP/7.1.12

X-RateLimit-Limit-second: 80000

X-RateLimit-Remaining-second: 79004

Request Headers

Accept: application/json, text/plain, */*

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Connection: keep-alive

Content-Length: 134

Content-Type: application/x-www-form-urlencoded

Host: qac-qupost.qutoutiao.net

Origin: https://mp.qutoutiao.net

Referer: https://mp.qutoutiao.net/

sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: "macOS"

Sec-Fetch-Dest: empty

Sec-Fetch-Mode: cors

Sec-Fetch-Site: same-site

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36

Form Data

{

"account": "小白龙",

"password": "123456",

"clientId": "long",

"responseType": "code"

}

Response

{

"code": "200",

"message": "OK",

"data": {

"code": "4dd529b3-c4b0-4066-a363-742c5b6b6e74_generate_token",

"accessToken": "eyJhbGciOiJSUzI1NiJ9.eyJhY2NvdW50SWQiOiJVNjA3NkIwMTI0Q0VERkQwMDAxMTdFREU3IiwiZXhwIjoxNjM5NDY1NzYzLCJpYXQiOjE2MzkyMDY1NjN9.ZHkW6j6rfbyyRQ5ZSRW_Z1nRTiYqyiWgSINBEZA99UMw92H1eiy4JxxC6n3AIAcE3Y9j_p8ZNTtJWIsSlsFbOZfmAuOr2ih4oR0tpjCWLU1UTesVmn7tCkeTpbmjeNJolcd4X7knKIKuXyi88SC6ZIhMJRE1ZTI3eK4hJUCi6Rx50lcHvjV_HX2ZHqEly5wqvr_jQ0ZWXquNlGTrPRXofQ6cLawVea8Z_EnXermECQrjWpRelhKYyl2hlqGd48n46avHFAaxp3UZhy1TeE_xeLxYMaBOpUADcPaezSj2Q_Qbq4T24w83iV2JwGAKAVPMQgBjn68IYuucS-j7fxXqFQ",

"accountId": "U6076B0124CEDFD000117EDE7"

},

"extra": null

}

以上是通过抓包工具或者浏览器的控制台(检查、F12)中获取的数据,这个接口经过了上图的流程,最终实现登录成功。

八,接口用例设计

        接口测试的原理就是模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。

        接口测试采用的方法其实与黑盒测试一致的,甚至可以把接口测试理解为没有界面的功能测试。只不过接口测试的测试点更多一些,除了界面上需要验证的各种功能点,还包括接口的安全、接口的性能等。

        一般测试用例的设计要从单接口参数的校验到整个业务功能点的验证,还可以验证一些安全性和异常情况。

接口用例设计点基本原则如下:

 还想学习的话,记得收藏及关注哦、
 
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
                                        
                                               
  ⑤ Python学习路线图(告别不入流的学习) 
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号768747503备注(csdn999)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦
                                         ————————————————
                                
                                      
                                          一定一定一定 要备注暗号:CSDN999

  

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值