您的位置:首页 > 编程语言 > Python开发

Python接口自动化测试-requests库的基础使用

2020-08-28 21:20 253 查看

简单介绍

requests库简单易用的HTTP库, 这是我看了虫师的那本书后《Web接口开发与自动化测试--基于Python语言》后总结的

 

Get请求

格式:requests.get(url)。 requests.get(url,params={})

注意:若需要传请求参数,可直接在url最后的?后面,也可以调用get()时多加一个参数params,传入请求参数,注意需要传dict格式;如下图

第一种

url = 'http://127.0.0.1:8888/passport/user/login'
param = {
'username': '123',
'password': '321'
}

"""通过params传参"""
res = requests.get(url, params=param)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.json())

"""通过params方式传参,最终发出的url也是一致的"""
# http://127.0.0.1:8888/passport/user/login?username=123&password=321
print(res.url)

第二种

"""通过url最后加上请求参数列表"""
url = 'http://127.0.0.1:8888/passport/user/login?username=123&password=321'
res = requests.get(url, verify=False)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.text)

 

Post请求

格式:requests.post(url,data)

注意:若无请求参数可不传data;当传入请求参数时必须传入dict格式

url = 'http://127.0.0.1:8888/passport/user/post_login'

data = {
'username': '123',
'password': '321'
}

"""传入请求参数"""
res = requests.post(url, data=data)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.json())

"""查看请求url"""
# http://127.0.0.1:8888/passport/user/post_login
print(res.url)

  

对GET和POST的再次封装

1     def http_post(self, url, data, body_format="JSON"):
2         self.driver.set_url(url)
3         self.driver.set_params({})
4         self.driver.set_data(data)
5         if body_format == "JSON":
6             return self.d
1b14
river.postWithJson()
7         else:
8             return self.driver.postWithCookies()
9
10     def http_get(self, url, params={}):
11         self.driver.set_url(url)
12         self.driver.set_params(params)
13         return self.driver.get()

 

 

自定义headers和cookies

1     """自定义headers"""
2     url = 'https://api.github.com/some/endpoint'
3     headers = {'user-agent': 'my-app/0.0.1'}
4
5     r = requests.get(url, headers=headers)
6     # {'message': 'Not Found', 'documentation_url': 'https://developer.github.com/v3'}
7     print(r.json())
8
9     """自定义cookies"""
10     url = 'http://httpbin.org/cookies'
11     cookies = dict(cookies_are='working')
12     cookies2 = {'cookies_are': 'working'}
13
14     r = requests.get(url, cookies=cookies)
15     # {'cookies': {'cookies_are': 'working'}}
16     print(r.json())

 

SSL证书验证

 

 

 当发送请求如果报以上错误时,可以在请求方法里加多一个字段 verify=False

就可以解决该问题,这个字段是为了免去HTTPS的验证步骤

url = 'https://www.imooc.com'
res = requests.get(url, verify=False)

  

响应内容

注意:当调用 json() 时,确保响应内容是json格式字符串,否则会报错

1     url = 'http://127.0.0.1:8888/passport/user/login'
2     param = {
3         'username': '123',
4         'password': '321'
5     }
6     res = requests.get(url, params=param)
7     print('请求url: ' + res.url)
8     print('响应内容 json格式: ' + json.dumps(res.json()))
9     print('响应内容 字符串格式: ' + res.text)
10     print('响应内容 二进制格式: ' + str(res.content))
11     print('响应码: ' + str(res.status_code))

获取header

>
13fc
;>> r.headers['Content-Type']
'application/json'

>>> r.headers.get('content-type')
'application/json'

获取cookie

>>> r.cookies['example_cookie_name']
'example_cookie_value'

  

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: