基于python的接口自动化测试

一、python+requests模块

requests是第三方库,主要用于发送http请求,做接口自动化

下载方式:pip install requests

二、requests全局

请求

1.requests.get()               发送请求

2.requests.post()             发送post请求

3.requests.delete()          发送delete请求

4.requests.reques()          最核心的方法

响应:response对象

import requests
rep=requests.request()
#返回字符串的数据
print(rep.text)
#返回字节格式的数据
print(rep.content)
#返回字典格式的数据
print(rep.json())
#状态码
print(rep.status_code)
#返回状态信息
print(rep.reason)
#返回cookie信息
print(rep.cookies)
#返回编码格式
print(rep.encoding)
#返回响应头信息
print(rep.headers)

三、接口实战

 请求方式:get、post、delete、put

请求参数类型:键值对、json格式、文件格式

这里来解释一下什么是键值对?

键值对(“key = value”),顾名思义,每一个键会对应一个值。

举个例子:

身份证号和你本人的绑定关系,在系统中输入身份证号(键)都会对应一个小可爱(值)。


咱在登陆微信、游戏或外卖账号时,需要输入手机号验证身份,这时,系统会向该手机号发送一条验证短信。这里的手机号码(键),对应的接收用户就是“值”。


每个键对应着相应的值, 当按下相应的键时, 就会输出相应的结果。

 线性脚本:NO(不建议这样做,费时费力)

import requests
#发送get请求 不知道函数传什么的时候用ctrl+左键
url= ""
#得到一个地址  get请求->若有&连接,则说明是参数,需要去掉
#参数直接写到data里面
data={

}
rep=requests.get(url=url,params=data)
print(rep.json())
access_token=rep.json()['access_token']
#post请求(data和json只需要传一个,他们有什么区别呢)

url=""+access_token+""
data={
    #添加测试例子
}
rep=requests.post(url,json=data)
print(rep.json())

unittest、pytest用例管理框架:

前提安装pytest:pip install pytest

        pytest默认规则:

        1.py文件必须以test_开头或者以_test结尾

        2.类名必须以Test开头

        3.测试用例必须以test_开头

注意:

        get是通过params传递参数

        post是通过json或data传递参数

        文件上传通过files上传

    def test_file_upload(self):
        url=""
        data={
            "":open(r"D:\shu.jpg","rb")
        }
        rep=requests.post(url=url,files=data)
        print(rep.json())

json和data的区别是什么?       

data
数据报文: dict字典类型,那么默认情况下请求头: applilcation/x-www-form-urlencoded,表示以form表单的方式传参,格式:a=1&b=2&c=3
数据报文: str类型,那么默认情况下 : text/plain (如果是字典格式需要转换成str格式传参)
json
数据报文:不管是dict还是str类型,默认都是application/ison,格式:"a":1,"b":2,即键值对。
        json.dumps(data) 序列化把字典格式的数据转换成str格式

        json.loads(data) 反序列化把str格式转换成字典格式

 总结:

        data只能传简单的只有键值对的dict或者是str格式,json一般只能传dict格式

  cookie鉴权:网页的接口基本上都要做cookie鉴权,这种不经常用  

  通过session实现cookie鉴权,这种基本常用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值