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

Posted 张_俊_杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 接口自动化测试二(request.get)相关的知识,希望对你有一定的参考价值。

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括:

  1. requests常用请求方法使用,包括:get,post
  2. requests库中的Session、Cookie的使用
  3. 其它高级部分:认证、代理、证书验证、超时配置、错误异常处理等。

 

本节首先来了解一下requests库中如何发送get请求:

一、看下方法定义:

1、到官方文档去了下requests.get()方法的定义,如下:

 

2、点击右上角的【source】,看一下它的源码如下:

 

看到最后一行return,get方法最后是通过调用 requests.request 方法实现的,其实在其它的请求方法如post,put,head,delete等方法都是调用的request方法,然后把请求方法的类型传递给request方法第一个参数。

 

3、HTTP协议是一个基于请求/响应模式的、无状态的,应用层协议。既然有请求,就有响应,来看下resquest中常用的响应信息:

 

二、get方法简单使用: 

1、不带参数的get:

复制代码
# -*- coding:utf-8 -*-
#不带参数的get

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = \'\'.join([host,endpoint])
r = requests.get(url)
#response = r.json()

print type(r.text)
print (eval(r.text))
复制代码

输出:

复制代码
{
    \'origin\': \'183.14.133.88\',
    \'headers\': {
        \'Connection\': \'close\',
        \'Host\': \'httpbin.org\',
        \'Accept-Encoding\': \'gzip,
        deflate\',
        \'Accept\': \'*/*\',
        \'User-Agent\': \'python-requests/2.18.1\'
    },
    \'args\': {
        
    },
    \'url\': \'http: //httpbin.org/get\'
}
复制代码

 

 

2、 带参数的get:
复制代码
# -*- coding:utf-8 -*-
#带参数的get

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = \'\'.join([host,endpoint])
params = {"show_env":"1"}
r = requests.get(url=url,params=params)

print r.url
复制代码

 输出: 

复制代码
http://httpbin.org/get?show_env=1
{
    \'origin\': \'183.14.133.88\',
    \'headers\': {
        \'X-Request-Id\': \'ebe922b4-c463-4fe9-9faf-49748d682fd7\',
        \'Accept-Encoding\': \'gzip,
        deflate\',
        \'X-Forwarded-Port\': \'80\',
        \'Total-Route-Time\': \'0\',
        \'Connection\': \'close\',
        \'Connect-Time\': \'0\',
        \'Via\': \'1.1vegur\',
        \'X-Forwarded-For\': \'183.14.133.88\',
        \'Accept\': \'*/*\',
        \'User-Agent\': \'python-requests/2.18.1\',
        \'X-Request-Start\': \'1504755961007\',
        \'Host\': \'httpbin.org\',
        \'X-Forwarded-Proto\': \'http\'
    },
    \'args\': {
        \'show_env\': \'1\'
    },
    \'url\': \'http: //httpbin.org/get?show_env=1\'
}
复制代码

 

3、带header的get:

复制代码
# -*- coding:utf-8 -*-

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = \'\'.join([host,endpoint])
headers = {"User-Agent":"test request headers"}

r = requests.get(url)
r = requests.get(url,headers=headers)
#response = r.json()
print (eval(r.text))[\'headers\'][\'User-Agent\']
复制代码

 输出:

test request headers

 

4、同时带参数和header:

复制代码
# -*- coding:utf-8 -*-
import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = \'\'.join([host,endpoint])
headers = {"User-Agent":"test request headers"}
params = {"show_env":"1"}

r = requests.get(url)
r = requests.get(url,headers=headers,params=params)

#response = r.json()
print (eval(r.text))[\'headers\'][\'User-Agent\']
print r.url
复制代码

输出:

test request headers
http://httpbin.org/get?show_env=1

以上是关于python 接口自动化测试二(request.get)的主要内容,如果未能解决你的问题,请参考以下文章

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

python接口自动化测试二十二:文件下载

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

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

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

python接口自动化测试二十七:密码MD5加密