接口测试概念:
接口:接口是为了提供一种服务
所有的接口统称为API,接口分为内部接口和外部接口
外部接口:测试被测系统和外部系统之间的接口
测试内部接口:
1.内部接口提供内部系统使用:开发人员自己开发的对自身系统提供的接口)
2.内部接口提供外部系统使用:正例,各种异常场景,权限控制(只需要测试正例即可),开发系统调用外部的其他的接口
————————————————
原文链接:https://blog.csdn.net/z2768557792/article/details/125462354
接口的内容:
请求方式、接口地址、协议、请求头、请求体(参数)、响应头、响应体
http响应状态码:
404(找不到)、500(内部服务器错误)、200(正常)、302(临时重定向)、304(未修改)、403(禁止)、504(超时)
常见接口类型/协议:
1.HTTP类型/协议:通过GET/POST来获取数据,在数据处理上效率比较高
2.WebService类型/协议:通过soap协议来获取数据,比起http来说能处理更加复杂的数据类型。本质上也是http协议
为什么要做接口测试?
1.开发初期,UI和web页面设计还没有到位,提前介入测试更早发现问题,否则底层的一个bug会引起连锁反应。
2.出于接口安全考虑——前端的限制容易绕过,需要同样测试后端的限制;另外测试接口验证数据的加密传输,例如用户密码
接口测试的原理:
模拟客户端向服务器发请求,服务器接收请求后对相应的请求做处理并向客户端返回响应结果,客户端接收结果的一个过程。
接口测试的流程:
1.获取接口需求并分析
2.编写接口测试用例&评审测试用例
3.项目环境部署
4.执行测试&工具选用
5.提交bug并跟进
6.单独需要整理接口测试报告
接口需求分析/用例编写
http的请求是无状态的。
如何编写接口测试仪用例?
1.接口的正常调用。即输入正常的参数值,检查接口返回的响应结果信息跟接口文档的预期是否一致,包括status、code等;数据库的增删改查是否正确。
2.接口的异常验证。即依据限制约束,包括长度、类型、必填等异常,同步考虑边界值。例如id是支持整数,传递的是小数或者字符串,再或者特别大的整数、负数等。
3.业务规则验证。例如投资接口中必须有足够的余额才能投资。
4.接口的安全性验证。对于用户的敏感信息进行加密。
5.接口的性能验证。
Jmeter工具的使用:
这里的参数代表在一秒的时间内要执行一次并发,而且只执行一次,如果循环选了100次,则会在接下来的100秒内每秒都执行一次。
要发送http请求,在这里填写各种信息,名称自拟,服务器名称可以直接填网址,也可以填IP,路径填url的后半部分,例如如下网址:https://fanyi.sogou.com/text?keyword=flush%0A%0A&transfrom=auto&transto=zh-CHS&model=general,服务器名称为https://fanyi.sogou.com,路径为/text?keyword=flush%0A%0A&transfrom=auto&transto=zh-CHS&model=general。
Jmeter参数化:
参数化的3种方式:
调用变量:${变量名}
1.配置元件:用户定义的变量
线程组→配置元件→用户自定义的变量
2.CSV Data Set Config
线程组→配置元件→csv数据文件配置
通过引入csv文件来提供参数,PS:如果有多个参数,可以通过并发/循环来让所有的参数都有用武之地。
3.函数助手对话框
工具→函数助手对话框→random String
可以自己实现随机的字符串:
如图,Jmeter会在0~9中挑选生成3个随机数。
关联:
概念:两个请求,上一个请求的响应结果,作为下一个请求的参数传入。
以取token为例:第一个的请求的token为第二个请求所用。
1.右键第一个http请求,添加后置处理器,选择Json处理器,填写如下:
“token”代表给取出的Json取名为token变量;$.data.token_info.token代表在Json文件第一层找data,然后在data中找到第二层的token_info,然后再找到第三层的token;1代表如果匹配到了多个token,就选择第一个作为读取到的值(在开发中一般不会出现token有多个值的情况);“error”代表如果没有找到token,就返回error(自定义)。
2.在第二个请求中右键添加HTTP信息头管理器,将刚刚取到的token匹配上即可:
类似的,步骤1中的token也可通过正则表达式的方式取出。
接口自动化:
自动化测试概念:广义上讲,使用工具或者代码来代替人工完成的测试,就是自动化。
网友评论