python接口自动化测试二:python代码实现接口测试

url = ‘接口地址‘

r = requests.get(url)           #发送get请求

print(r.status_code)            #打印状态码,若有重定向,返回的是重定向之后的代码

print(r.headers)                #打印返回的报头(头部)

print(r.text)                   #查看返回结果的文本形式

r.status_code                #响应状态码

r.content                  #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩

r.headers                  #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.json()                   #Requests中内置的JSON解码器 ,json转成python的字典了

r.url                    # 如果没有重定向,就是请求的url,如果有重定向,就是重定向后的url
r.encoding                 # 查看返回的编码格式
r.cookies                   # 获取cookie
r.raw                    #返回原始响应体

r.history                      #追踪重定向过程(list类型)
r.text                   #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

r.content.decode(‘utf-8‘)      # 返回内容有乱码时,用此方法打印
r.raise_for_status()           #失败请求(非200响应)抛出异常

loginCookies = r.cookies:     # 获取登录的cookies

cookies=loginCookies:         # 把获取到的cookies传入请求

s = requests.session()         # 可以理解为代码的微型浏览器,这样做的好处就是可以保存cookies,不用每次都去获取(只适用于网站是cookies这种,网站是token的没用)

print(r.encoding)              # 查看返回的编码格式

r.json                         # 获取返回的json

verify=False                   # 访问https请求时加上后不验证证书

# open打开excel文件,保存为后缀为xls的文件

fp = open(‘yoyo.xls‘, ‘wb‘)     # w:写入, b:二进制的形式

去掉Warning警告:

import urllib3

urllib3.disable_warnings()

一、HTTP:

get请求:

1、get请求(无参数):

2、get请求(带参数):

接口地址:http://japi.juhe.cn/qqevaluate/qq

返回格式:json

请求方式:get post

请求示例:http://japi.juhe.cn/qqevaluate/qq?key=您申请的appKey&qq=295424589

接口备注:根据传入的参数 qq 号码和您申请的 appKey 测试 qq 的吉凶

请求参数说明(入参) :

名称    必填    类型      说明

key     是      string    您申请的 appKey:8dbee1fcd8627fb6699bce7b986adc45

qq      是      string    需要测试的 QQ 号码:907728701

2.1、以url的方式传参:

url = ‘http://japi.juhe.cn/qqevaluate/qq?key= 8dbee1fcd8627fb6699bce7b986adc45&qq=907728701‘

2.2、以字典的形式传参:

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

par = {

‘key‘:‘ 8dbee1fcd8627fb6699bce7b986adc45‘,

‘qq‘:‘907728701‘

}

r = requests.get(url,params=par)                       #发送get请求

Post请求:

1、    post请求(无参数):

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

r = requests.post(url)                      #发送post请求

print(r.status_code)                        #打印状态码

print(r.headers)                            #打印返回的报头(头部)

print(r.text)                               #查看返回结果的文本形式(body部分)

2、    post请求(有参数):

2.1、以url的方式传参:

url = ‘http://japi.juhe.cn/qqevaluate/qq?key= 8dbee1fcd8627fb6699bce7b986adc45&qq=907728701‘

r = requests.post(url)            #发送post请求

2.2、以字典的形式传参:

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

par = {

‘key‘:‘8dbee1fcd8627fb6699bce7b986adc45‘,

‘qq‘:‘907728701‘

}

r = requests.post(url,params=par)            #发送get请求

二、HTTPS:

1、get:

url = ‘https://www.juhe.cn/docs/api/id/39‘

r = requests.get(url)                       #发送get请求

print(r.status_code)                        #打印状态码

print(r.headers)                            #打印返回的报头(头部)

print(r.text)                               #查看返回结果的文本形式(body部分)

SSLError:证书问题:

方法1.检查faddler是否关闭,关闭后,访问成功:

方法2.请求参数后加上:verify=False

verify默认为True,此时会验证证书,改为False将不会验证证书

Body部分:

Content-Type: application/x-www-form-urlencoded; charset=UTF-8:传data

Content-Type: application/json:传json

把返回的内容解析为json格式:

前提:一定内容为json格式

若乱码::

以content字节流输出,解码成utf-8:

print(r.encoding)   # 查看返回的编码格式:

去掉Warning警告:

import urllib3

urllib3.disable_warnings()

错误处理:

403:拒绝或者禁止访问:须伪装头部(头部详情根据接口文档)

1、服务器识别出为代码访问:

1.1.代码访问的头部:User-Agent为python

1.2.浏览器访问的头部:User-Agent为浏览器

1.3.在头部加上User-Agent:

2、伪装头部后仍然403:服务器校验Cookic              (Cookic有时效性)

2.1.代码访问时没有加Cookic

2.2.浏览器访问时有Cookic

2.3.在头部加上Cookic访问成功

原文地址:https://www.cnblogs.com/zhongyehai/p/9159282.html

时间: 2024-12-08 05:33:16

python接口自动化测试二:python代码实现接口测试的相关文章

python接口自动化测试二十:函数写接口测试

# coding:utf-8import requestsimport refrom bs4 import BeautifulSoup # s = requests.session() # 全局的s def get_token(s): ''' fuction: 获取token args: s 参数 ->s = requests.session() :return anti_token ->{'X-Anit-Forge-Token': 'xx', 'X-Anit-Forge-Code': '38

python接口自动化测试二:常用操作

url = '接口地址' r = requests.get(url)                      # 发送get请求 print(r.status_code)              # 打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                 # 打印返回的报头(头部) print(r.text)                    # 查看返回结果的文本形式 r.status_code               

python接口自动化测试二十五:执行所有用例,并生成HTML测试报告

    import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测试报告的测试组类 def test_qq(self):        '''测试QQ号码,正确的appkey'''      # 此注释将展示到测试报告的用例标题        url = 'http://japi.juhe.cn/qqevaluate/qq'        par = {     

python接口自动化测试二十六:使用pymysql模块链接数据库

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2018/5/28 18:51# @Author  : StalloneYang# @File    : mysql_test.py# @desc: # 连接数据库 import pymysql.cursors # 连接MySQL数据库connection = pymysql.connect(host='localhost', port=3306, user='yang', pass

python接口自动化测试二十三:文件上传

# 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requestsclass LoginZentao(): def __init__(self, s): # 初始化 self.s = s # 定义一个全局的s def login(self): r = self.s.post() # self.s调用全局的s pass if __name__=='__main__': s = requests.session() zentao = LoginZentao(s) # 类实例化为

python接口自动化测试(二)-requests.post()

上一节介绍了  requests.get()  方法的基本使用,本节介绍  requests.post()  方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2.带header的post 3.带json的post 4.带参数的post 5.普通文件上传 6.定制化文件上传 7.多文件上传 一.方法定义: 1.到官方文档去了下requests.post()方法的定义,如下: 2.源码: 3.常用返回信息: 二.post方法简单使用: 1.带数据的post:

python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法

python 接口自动化测试二(request.get)

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法

python接口自动化测试三:代码发送HTTP请求

get请求: 1.get请求(无参数): 2.get请求(带参数): 接口地址:http://japi.juhe.cn/qqevaluate/qq 返回格式:json 请求方式:get post 请求示例:http://japi.juhe.cn/qqevaluate/qq?key=您申请的appKey&qq=295424589 接口备注:根据传入的参数 qq 号码和您申请的 appKey 测试 qq 的吉凶 请求参数说明(入参) : 名称    必填    类型      说明 key