接口-数据格式以及JSON详解
1、接口返回的数据格式(返回三组数据)
Json格式
{error_code:0,
message:"提现成功",
data:[]}
error_code:错误码,0代表成功
msg:对错误码的中文说明
data:真正的返回的数据
Html格式
<html>
<title></title>
<body>
<error_code>0</error_code>
...
</body>
</html>
Xml格式
<?xml?version="1.0" encoding="utf-8">
<error_code>0</error_code>
...
</xml>
JSON详解:
json就是一种数据类型,例:整型,小数,字符串
json只能由两组数据组成
MAP对象,键值对:{key:value,key:value}
或者
数组:{value1,value2,value3}
www.bejson.com,用于校验,格式化json数据,以及接口加密、解密
2、接口协议
1)webservice协议:接口地址http://......?wsdl
基于soap协议,通过wsdl描述
近几年的变更:restful规则,通过最简单的http协议进行传输,也可传输json,xml,html
变更之前:
http://192.168.12.1:8080/addUser
http://192.168.12.1:8080/delUser
http://192.168.12.1:8080/updUser
http://192.168.12.1:8080/selUser
restful:
http://192.168.12.1:8080/User
地址只有一个,根据请求参数区分是哪一种操作(增删改查)
特点:get获取数据,post提交数据,put修改数据,delete删除数据
2)dubbo协议:接口地址以dubbo://......
特点:采用长连接异步通信,适合少量数据的传输,大并发,不适合传输大量数据
3)http协议:接口地址:http://... 80
https=http+ssl安全传输协议 端口:443
http:端口80
3、什么是http协议
http是一个超文本传输协议,主要是用于浏览器和服务器之间交互数据
请求:get、put、post、delete
响应:1XXX响应的信息,2XXX响应成功,3XXX重定向(跳转不传值),4XXX客户端错误,5XXX服务器错误
请求部分包含:
请求行:请求方式、请求地址、协议
请求头:
Accept 客户端可以接收的数据格式
X-Requested-With 异步请求,请求局部刷新的接口
User-Agent 客户端的用户、用户代理
Host 请求的主机的地址
Accept-Enconding 可接收的压缩方式
Connection 保持活跃的,如果不活跃则会断开
Cookie 请求所带的cookie信息,
Content-Length 内容的长度
空一行
响应的内容
4、企业接口测试的流程和方案
1)拿到api接口文档,熟悉接口业务,接口地址,鉴权,入参,出参,错误码
2)接口测试计划和方案
思路:
正例:输入正常的入参,查看接口是否返回成功
反例:鉴权反例,鉴权尾款,鉴权码错误,鉴权码已过期...
参数反例:参数为空,参数类型异常,参数长度异常,错误码的覆盖(是不是黑名单,调用接口的限制)
其他场景:分页异常
编写用例和评审
执行接口测试
输入输出测试报告
1、避免索引错误,如图索引错误,因为索引是从0开始的,发生索引错误时可以打印一下列表长度

need-to-insert-img
need-to-insert-img
2、遍历整个列表
使用for循环,从列表magicans中取出名字存储在magic变量里,重复执行2-3行代码,打印每个名字
need-to-insert-img
对每个人打印一条消息
need-to-insert-img
在for循环下再加一条循环的内容(缩进)
need-to-insert-img
打印一条结束语句(不加缩进)
need-to-insert-img
忘记缩进出现的报错
need-to-insert-img
忘记缩进但不报错,返回的结果中缺少了其他两个人的问候语,只打印了最后一条
need-to-insert-img
不必要的缩进
need-to-insert-img
循环后不必要的缩进,打印多次结束语
need-to-insert-img
遗漏冒号,语法错误
need-to-insert-img
想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for 循环将每种比萨的名称都打印出来。修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名称。对于每种比萨,都显示一行输出,如“I like pepperoni pizza”。在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨。输出应包含针对每种比萨的消息,还有一个总结性句子,如“I really love pizza!”。
need-to-insert-img
想出至少三种有共同特征的动物,将这些动物的名称存储在一个列表中,再使用for 循环将每种动物的名称都打印出来。修改这个程序,使其针对每种动物都打印一个句子,如“Adogwould makea great pet”。在程序末尾添加一行代码,指出这些动物的共同之处,如打印诸如“Any oftheseanimals would makea great pet!”这样的句子
need-to-insert-img
3、使用函数range(),这个函数从第一个数开始打印,到指定的数字停止(5)
need-to-insert-img
4、使用函数list(),将range()作为函数list的参数,创建一个数字列表
need-to-insert-img
指定步长,每次+2,+到11为止
need-to-insert-img
打印1-10的平方数列表
先建立一个空列表,然后把1-10的值存在变量value里,把value中的一个值进行平方运算,存进空列表,然后从列表末尾开始插入运算后得到的数据,循环打印数组
need-to-insert-img
参考:
https://www.bilibili.com/video/BV17p4y1B77x?from=search&seid=16095959831877891857