python实现接口自动化框架第一讲--python的安装与requests模块介绍

工具怎么测试接口其实我觉得百度或者实际学习一下就能够了解,在这里我就不多说了。

首先我们需要一套python环境

1. python3.6 环境搭建

2. pycharm的下载

3. python - requests库的安装

注:如果有小伙伴电脑上既有python2,又有python3的话,我们在输入命令的时候一定要记住不要python,这样他找的是环境变量靠前的那个, 解决方法: 如果想打开python3 则输入py -3      如果想打开python2 则输入py -2  实现快速切换python版本。

在这里我对环境搭建和requests的安装不做多的解释,如果有不懂的同学请点击下面的三个链接分别进行安装和搭建:

python3.6的安装  点击打开链接

pycharm的下载安装 点击打开链接

python - requests库的安装     pip install requests  在 cmd中输入即可   如果出现任何安装上的问题,请自行百度解决



第一步:


新建立一个项目,如图打开已经安装好的pycharm,点击File 输入项目名称,点击create,建立好之后如下图:


首先了解一件事情:在接口自动化headers中我们讲到过,其实大体流程为三种

1. 数据源的维护

2. 请求发送与接收

3. 测试用例以及断言的处理


关于本文我们所讲的便是请求的发送与接收,也就是requests模块的大致功能

知识点  requests在python2中是不存在的,与其相对应的是urllib和urllib2进行请求。


接下来我们将会在pycharm对每一个方法进行详解:

1.requests安装成功验证:如果出现下图不报红,恭喜你模块安装成功。


2.使用requests发送get请求:

url = https://github.com/timeline.json

在浏览器中打开如下:


使用requests发送的话如下图: 第一个参数可以看注释,就是我们需要请求的url,第二个参数是params,

params: url的组成是 http://或https:// + ip:端口/接口名称?id = 1  红色部分即为params也就是请求所用的参数

一般get请求的参数就在url中拼接,所以会产生不能储存较多的传入参数,不是很安全等问题。


re = requests.get('https://github.com/timeline.json') 我们补全然后ctrl+shift+f10来进行接口请求

打印出来re如下图:


返回的只有状态吗,和浏览器并不一样,在这里引入第一个种方法

操作re使用text   re.text() 获取内容,得到了和浏览器一样的返回

注:拿去接口的返回内容,在测试中我们需要取里面所对应的数据,也就是实际结果,要和我们预期结果做比较


我们可以看到下面的图片和上面有一些不一样的地方,re.content() 这个也能够返回页面内容,但是返回结果中前面有b,一般适用于二进制的内容返回,如图片,文件等。



除了上面的get方法,在工作中常用的还有post方法,delete,put,head,options

post方法与get类似 requests.post() 便可以请求post类型的接口。

这边说一下总体的post和get的区别

1. get方法一共有三种情况:只有url

                                           有url,有params,

                                           有url,有params,有headers

2.post方法多于get:可以存放数据到data或者json中,包括headers,cookies,file

关于file的解释: 可以使用 files = {'file':open('文件名称','rb')}

                                            re = requests.post(file=files) 这种形式发送请求 其他就只是参数不同根据请求规则发送

关于json的解释  可以import json来对数据进行处理 通过拿到的返回r.json变成字典的形式,能够方便我们取里面的内容

记住就是 dict格式的报文的话传到data中就行了  json格式的报文需要使用下图中的两种方式转换传输。

如 r.headers  取返回的头部信息

    r.status_code 取返回的状态吗






两种请求均可以设置代理


设置超时时间



做的所有事情都是为了拿到返回结果,根据需求和接口的不同进行不同的请求。

猜你喜欢

转载自blog.csdn.net/weixin_38079422/article/details/80757909