pytest--python的一种测试框架--接口测试

接口测试

工具

POSTMAN;

接口选择

豆瓣电影,进制数据

POSTMAN下载:

1.POSTMAN官网:https://www.postman.com/products/;

2.点product选Download Postman

下载完之后双击打开就可以用的。

打开豆瓣网址:

https://movie.douban.com/点击右键,选择检查,这样就打开了浏览器的控制台,进入了一个客户端到服务端请求的详细记录。点击到network,右键刷新,就可以看到下面都是我们要请求的一个资源。如图

status(状态):就是我们的状态码;

type(类型):就是看内容是文档还是图片;点击Fetch/XHR,是XMLHttpRequest的一方式,这是一种筛选,把请求中XMLHttpRequst这个请求方式的请求筛选出来。点击其中一个https://movie.douban.com/j/subject_abstract?subject_id=35633969;点击preview(预览),这个是折叠的,打开后我们可以看到json格式的语句的接口的返回。

如图详解:

1、第一步先点击加号,就出现了下面的输入框,

2、可以看到2号处展示;Enter request URL(需要输入URL)。URL就是接口地址,复制豆瓣页面subject_abstract对应的标头里的URL,回到POSTMAN里面在输入处往里面粘贴,然后去确认一下接口的请求方法,如图7里的显示为get,所以框前那个选项就选择get,这个时候我们就发现下面在Params(参数),它自己填充的。这个参数是怎么填充的呢?就是通过URL里面subject_abstract?后面就是参数和参数的值他们通过=进行连接,多个参数的话通过&进行连接;里面出现的%E7%83%AD%E9%97%A8是可以进行解码的这个是URL的中文参数;

解码网址:https://www.iamwawa.cn/urldecode.html。

如图所示解码显示这条语句代表热门的意思。Page_limit代表当前页数的限制也就是分页,每一页展示数据条数的极限,page_start从0开始,就是说明如果请求的话第一页数据量为50.然后,点击send发送请求,显示如图10。在做接口测试的时候,我们首先会观察它的状态返回码(status)如图显示,Starus显示为200OK,这就说明接口是正常返回的,里面是否正确还需要进行进一步验证。下方可以看到,返回是一个 "subjects":数组,目前接口是通的,但是具体接口返回的数据对不对我们需要做校验,如何做校验?接口测试我们是可以拿到一个接口文档的,然后我们需要对接口的返回根据当前的业务进行对比,也就是这个字段应该返回什么,我们需要进行一个数据的比对。但是因为豆瓣这个网址是从网上找的所以拿不到它的接口文档,也不知道它各个字段对应的内容应该是什么。



如何找到一个有接口文档的接口?

网址:https://www.binstd.com/(已停服)

进制数据网站中有免费的API,登录成功之后在登录首页点击API,选择一个免费的项目比如手机号码归属地。打开之后可以看到,有接口地址、支持格式、请求方法、请求示例;这个时候可以复制接口地址到POSTMAN

https://api.binstd.com/shouji/query(已停服,更换内容:https://sellshop.5istudy.online/sell/shouji/query)获取参数两种方式:1、在输入语句后加?shouji=13456755448,这样下面的参数就自动填充了。2、也可直接在下面VALUE填充13456755448,在KEY填充shouji,这样上面的输入也会自动补上?shouji=13456755448语句。两种方法,效果相同。

这个时候点击send,却发现虽然接口是通的,但是"msg": "APPKEY为空",也就是说身份认证为空,所以还要传入该参数(填你自己的appkey);输出内容如下图所示

请求路径:https://dashboard.apiuni.cn/api/uni_api/consume/20aaab16e

post方式接口

post接口使用量基本上可以说仅次于get,

post有两种传参方式一种是data,一种是json

在POSTMAN新建一个口,输入https://jsonplacehoder.typicode.com/posts;

选择post方式,

在body中传参最常用的方式有form-data和raw,

此次选择raw语句

选择json,将内容放入body(POST里面不允许有单引号,单引号会报错,改双引号):

python 复制代码
{
    "title":"foo",
    "body":"bar",
    "userId":1
}

点send你会发现它的状态码是201这也是成功连接上接口的一种。

使用form-data传递:

网址:fanyi.youdao.com

打开有道,右键-检查,可以通过f12的工具进行请求的一个抓包。如图输入并打开key里面的负载(Payload),这里面存放的表单数据(form-data)就是对应的POSTMAN里面的form-data格式的输入。使用form-data进行接口传递(传递语句或文件什么的)的话一般就是一个post请求。

如图所示点击send接口连接成功,并且可以看到官网接口返回与POSTMAN里面接口返回一致,这两种参数传递的方式就了解结束了。

相关推荐
Blossom.1182 分钟前
从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
数据库·人工智能·python·深度学习·机器学习·计算机视觉·oracle
蒋星熠20 分钟前
破壁者指南:内网穿透技术的深度解构与实战方法
网络·数据库·redis·python·websocket·网络协议·udp
shizidushu26 分钟前
使用 Pyinstaller 打包 PPOCRLabel
python·pyinstaller
Q_Q19632884751 小时前
python+springboot+uniapp微信小程序题库系统 在线答题 题目分类 错题本管理 学习记录查询系统
spring boot·python·django·uni-app·node.js·php
Rhys..1 小时前
.gitignore文件的作用及用法
python·github
IT学长编程2 小时前
计算机毕业设计 基于深度学习的酒店评论文本情感分析研究 Python毕业设计项目 Hadoop毕业设计选题 机器学习选题【附源码+文档报告+安装调试】
hadoop·python·深度学习·机器学习·数据分析·毕业设计·酒店评论文本情感分析
~-~%%2 小时前
Moe机制与pytorch实现
人工智能·pytorch·python
深耕AI2 小时前
【PyTorch训练】为什么要有 loss.backward() 和 optimizer.step()?
人工智能·pytorch·python
0_0梅伊阁诗人3 小时前
Django ORM 模型
开发语言·数据库·笔记·python·oracle·django
Genevieve_xiao4 小时前
【dl】python基础 深度学习中需要用到的python基础
python·深度学习