Python request操作步骤及代码实例
作者:天天向上327 发布时间:2022-03-16 10:42:47
操作步骤
A.cmd输入:pip install requests,安装requests
B.py文件导入:import requests
C.get
调用get: r = requests.get(url)
断言:self.assertEqual(r.status_code, 200)
说明:status_code为状态返回值,如200表示访问成功
D.post
入参为json格式需要把字典转成json格式: json_data =json.dumps({"usename": "test","password" : "123456"}) ,
请求报头为json格式:self.json_headers= {'content-type': 'application/json'}
调用post(请求与返回都是josn格式):
r = requests.post(url,data=json_data,headers=self.json_headers)
如果返回内容为:[{'name': 'zhangshan', 'age': '18'}, {'name': 'lisi', 'age': '29'}]
断言1:self.assertEqual(r.json()[0]['name'], 'zhangshan') ,说明r.json()转成list,list里面是字典,取list[0]第一个值,取字典key值['name']
如果返回内容:{'success': 'true', 'msg': 'chengong'}
断言2:self.assertEqual(r.json()['success'], 'true'),说明r.json()转成字典,取字典key值['success']
config.json 配置文件内容:
[
{
"request" :
{
"method": "post",
"uri" : "/login",
"file": {
"json": "user.json"
}
},
"response" :
{
"json": {"success": "true","msg": "chengong"}
}
},
{
"request" :
{
"method": "post",
"uri" : "/data"
},
"response" :
{
"file" : "data.json"
}
},
{
"request" :
{
"method": "get",
"uri" : "/home"
},
"response" :
{
"text" : {
"template": "true"
}
}
}
]
data.json 返回值文件内容:
[
{
"name": "zhangshan",
"age": "18"
},
{
"name": "lisi",
"age": "29"
}
]
user.json 入参文件内容:
{
"usename": "test",
"password" : "123456"
}
python文件“login.py”内容:
#!/usr/bin/python3
# encoding:utf-8
import unittest
import requests
import json
class login(unittest.TestCase):
def setUp(self):
self.d ='http://127.0.0.1:9999'
self.json_headers= {'content-type': 'application/json'}
def tearDown(self):
pass
def test_gethome(self):
url = self.url('/home')#http://127.0.0.1:9999/home
r = requests.get(url)
self.assertEqual(r.text, 'true')
self.assertEqual(r.status_code, 200)
def test_postlogin(self):
url= self.url('/login')
json_data =json.dumps({"usename": "test","password" : "123456"})
r = requests.post(url,data=json_data,headers=self.json_headers)
#{'success': 'true', 'msg': 'chengong'}
self.assertEqual(r.json()['success'], 'true')
def test_postdata(self):
url= self.url('/data')
r = requests.post(url,data={},headers=self.json_headers)
print(len(r.json()))#r.josn返回list,长度2
#[{'name': 'zhangshan', 'age': '18'}, {'name': 'lisi', 'age': '29'}]
self.assertEqual(r.json()[0]['name'], 'zhangshan')
self.assertEqual(r.json()[-1]['age'],'29')
def url(self,path):
return self.d + path
if __name__=='__main__':
unittest.main()
运行结果
.2
...
.----------------------------------------------------------------------
.Ran 3 tests in 0.036s
.
.OK
来源:https://www.cnblogs.com/yiwenrong/p/12658855.html
猜你喜欢
- 原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后执行,当然任务队列要加锁,详细请看代码import threadingimp
- 随着同时开发的项目越来越多,需要不停的在各个不同版本的 python 环境之间切换,所以想到了pyenv。以前一直使用的 vir
- 这个东西算是我被这个shuffle坑了的一个总结吧!首先我得告诉你一件事,那就是pytorch中的tensor,如果直接使用random.s
- 主要代码是参考:https://github.com/SoulDGXu/NLPVisualizationSystem/tree/master
- Django 简介Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初
- 3. 迭代器3.1. 迭代器(Iterator)概述迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都
- 虽然有些人认为区块链是一个早晚会出现问题的解决方案,但是毫无疑问,这个创新技术是一个计算机技术上的奇迹。那么,究竟什么是区块链呢?区块链以比
- 识别验证码OCR(Optical Character Recognition)即光学字符识别技术,专门用于对图片文字进行识别,并获取文本。字
- 设计原理从结构上来说,一个简单的图形界面,需要由界面组件、组件的事件 * (响应各类事件的逻辑)和具体的事件处理逻辑组成。界面实现的主要工作
- upload.htm <html><head><title>网站维护 -
- TensorFlow版本更新太快 了,所以导致一些以前接口函数不一致,会报错。这里总结了一下自己犯的错,以防以后再碰到,也可以给别人参考。首
- 本文实例讲述了python单元测试unittest用法。分享给大家供大家参考。具体分析如下:单元测试作为任何语言的开发者都应该是必要的,因为
- multiprocessing多进程概念创建多进程基本流程创建进程对象启动进程 回收进程代码:import multiprocessing
- 需求:根据country列的不同值,将内容分到不同sheet方法一:读取原Excel,根据country列将不同的内容放到不同的sheet,
- 这段时间微信跳一跳这个游戏非常火爆,但是上分又非常的难,对于程序员来说第一个念头就是通过写一个辅助脚本 * 让上分变的容易,python现在比
- 一、问题描述 筛选出多个txt文件中需要的数据二、数据准备这是我自己建立的要处理的文件,里面是随意写的一些数字和字母三、程序编写import
- 看看这个指令在ASP程序中的应用,有[delete from 歌手 where 艺名='cs2000'],删除艺名为cs20
- 一个小项目自动登录淘宝联盟抓取数据,由于之前在Github上看过类似用Python写的代码因此选择用Python来写,第一次用Python正
- 2个简单的代码,帮你实现word的导出和word的读取功能一:导出word,word中的内容为代码:from docx import Doc
- 本文实例讲述了Python网络编程之使用TCP方式传输文件操作。分享给大家供大家参考,具体如下:TCP文件下载器客户端需求:输入要下载的文件