1. 程式人生 > 實用技巧 >Python介面自動化測試(一)-requests.get()

Python介面自動化測試(一)-requests.get()

環境搭建在appium已經講過了,可以參考https://www.cnblogs.com/Chilam007/p/12726689.html

下面的內容轉載自:https://www.cnblogs.com/puresoul/p/7488488.html

環境搭建好後,接下來我們先來了解一下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