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

Posted lanyinhao

tags:

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

一、方法定义

二、post方法简单使用

  1、带数据的post

  2、带header的post

  3、带json的post

  4、带参数的post

  5、普通文件上传

  6、定制化文件上传

  7、多文件上传

一、方法定义:

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

技术图片

2、源码:

技术图片

3、常用返回信息:

技术图片

二、post方法简单使用:

 1、带数据的post:

# -*- coding:utf-8 -*-
import requests
import json

host = "http://httpbin.org/"
endpoint = "post"
url = ‘‘.join([host,endpoint])
data = key1:value1,key2:value2

r = requests.post(url,data=data)
#response = r.json()
print ((r.text))

输出:

技术图片

  "args": , 
  "data": "", 
  "files": , 
  "form": 
    "key1": "value1", 
    "key2": "value2"
  , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "23", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.1"
  , 
  "json": null, 
  "origin": "183.14.133.88", 
  "url": "http://httpbin.org/post"
View Code

2、带header的post:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])
headers = "User-Agent":"test request headers"

# r = requests.post(url)
r = requests.post(url,headers=headers)
#response = r.json()

输出:

技术图片

  "args": , 
  "data": "", 
  "files": , 
  "form": , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "0", 
    "Host": "httpbin.org", 
    "User-Agent": "test request headers"
  , 
  "json": null, 
  "origin": "183.14.133.88", 
  "url": "http://httpbin.org/post"
View Code

3、带json的post:

import requests
import json

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

url = ‘‘.join([host,endpoint])
data = 
    "sites": [
                 "name":"test" , "url":"www.test.com" ,
                 "name":"google" , "url":"www.google.com" ,
                 "name":"weibo" , "url":"www.weibo.com" 
    ]


r = requests.post(url,json=data)
# r = requests.post(url,data=json.dumps(data))
response = r.json()

输出:

技术图片

  "args": , 
  "data": "\\"sites\\": [\\"name\\": \\"test\\", \\"url\\": \\"www.test.com\\", \\"name\\": \\"google\\", \\"url\\": \\"www.google.com\\", \\"name\\": \\"weibo\\", \\"url\\": \\"www.weibo.com\\"]", 
  "files": , 
  "form": , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "140", 
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.21.0"
  , 
  "json": 
    "sites": [
      
        "name": "test", 
        "url": "www.test.com"
      , 
      
        "name": "google", 
        "url": "www.google.com"
      , 
      
        "name": "weibo", 
        "url": "www.weibo.com"
      
    ]
  , 
  "origin": "113.65.130.163, 113.65.130.163", 
  "url": "https://httpbin.org/post"
View Code

4、带参数的post:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])
params = key1:params1,key2:params2

# r = requests.post(url)
r = requests.post(url,params=params)
#response = r.json()
print (r.text)

输出:

技术图片

  "args": 
    "key1": "params1", 
    "key2": "params2"
  , 
  "data": "", 
  "files": , 
  "form": , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "0", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.1"
  , 
  "json": null, 
  "origin": "183.14.133.88", 
  "url": "http://httpbin.org/post?key2=params2&key1=params1"
View Code

5、普通文件上传:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])
#普通上传
files = 
            file:open(test.txt,rb)
        

r = requests.post(url,files=files)
print (r.text)

输出:

技术图片

  "args": , 
  "data": "", 
  "files": 
    "file": "hello world!\\n"
  , 
  "form": , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "157", 
    "Content-Type": "multipart/form-data; boundary=392865f79bf6431f8a53c9d56c62571e", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.1"
  , 
  "json": null, 
  "origin": "183.14.133.88", 
  "url": "http://httpbin.org/post"
View Code

6、定制化文件上传:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])
#自定义文件名,文件类型、请求头
files = 
        file:(test.png,open(test.png,rb),image/png)


r = requests.post(url,files=files)
print (r.text)heman793

7、多文件上传:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])
#多文件上传
files = [
    (file1,(test.txt,open(test.txt, rb))),
    (file2, (test.png, open(test.png, rb)))
    ]

r = requests.post(url,files=files)
print (r.text)

8、流式上传:

# -*- coding:utf-8 -*-
import requests
import json

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

url = ‘‘.join([host,endpoint])

#流式上传
with open( test.txt ) as f:
    r = requests.post(url,data = f)

print (r.text)

输出:


  "args": , 
  "data": "hello world!\\n", 
  "files": , 
  "form": , 
  "headers": 
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "13", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.1"
  , 
  "json": null, 
  "origin": "183.14.133.88", 
  "url": "http://httpbin.org/post"

 

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

移动端自动化测试之 Appium+Pyhton环境准备篇

pyhton自动删除文件

pyhton tab 自动补全

爬虫requests库的方法与参数

Pyhton数据挖掘-电力窃漏电用户的自动识别

pyhton2 and python3 生成随机数字字母符号字典(用于撞库测试/验证码等)