范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

软件测试测试开发丨如何高效使用Requests做接口自动化测试

  公众号搜索:TestingStudio 霍格沃兹测试开发的干货都很硬核
  Requests是一个优雅而简单的python HTTP库,其实python内置了用于访问网络的资源模块,比如urllib,但是它不如requests简单,优雅,而且缺少许多实用功能。接下来的接口测试的学习和实战,都与requests库息息相关。
  Requests官方文档:
  2.python-requests.org/en/master/ 接下来就会使用最流行的requests进行接口测试接口请求构造
  requests提供了几乎所有的HTTP请求构造方法,以及通过传入参数的方法,对发送的请求进行定制化的配置。可以用来应对各种不同的请求场景。安装 requests
  pip命令安装requests。pip install requests
  发送get请求import requestsr = requests.get("https://api.github.com/events")
  在请求中添加data参数,并发送post请求import requestsr = requests.post("http://httpbin.org/post", data = {"key":"value"})
  在请求中添加data参数,并发送put请求import requestsr = requests.put("http://httpbin.org/put", data = {"key":"value"})
  发送delete请求import requestsr = requests.delete("http://httpbin.org/delete")
  发送head请求mport requestsr = requests.head("http://httpbin.org/get")
  发送options请求import requestsr = requests.options("http://httpbin.org/get")
  也可以直接使用request函数,传入不同的method,例如使用这个方法发送get请求import requestsrequests.request("get", "http://www.baidu.com")其他重要参数
  下面的参数都是非必须参数,但是如果需要对请求做额外的定制化,则需要以下这些参数的作用。header参数,通过传入dict定制请求头import requests url = "https://api.github.com/some/endpoint" headers = {"user-agent": "my-app/0.0.1"} r = requests.get(url, headers=headers)data参数发送编码为表单形式的数据单>>> payload = {"key1": "value1", "key2": "value2"} >>> r = requests.post("http://httpbin.org/post", data=payload) >>> print(r.text)  {   ...   "form": {     "key2": "value2",     "key1": "value1"   },   ... }files参数,上传文件,dict格式。>>> url = "http://httpbin.org/post" >>> files = {"file": open("report.xls", "rb")} >>> r = requests.post(url, files=files) >>> r.text  {   ...   "files": {     "file": ""   },   ... }
  注意:建议用二进制模式(binary mode)打开文件。这是因为 Requests 可能会试图为你提供 Content-Length header,在它这样做的时候,这个值会被设为文件的字节数(bytes)。如果用文本模式(text mode)打开文件,就可能会发生错误。timeout参数设定超时时间(秒),到达这个时间之后会停止等待响应:>>> requests.get("http://github.com", timeout=0.001)  Traceback (most recent call last):   File "", line 1, in  requests.exceptions.Timeout:  HTTPConnectionPool(host="github.com", port=80):   Request timed out. (timeout=0.001)
  注意:timeout 仅对连接过程有效,与响应体的下载无关。 timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常(更精确地说,是在 timeout 秒内没有从基础套接字上接收到任何字节的数据时),如果不设置 timeout,将一直等待。allow_redirects参数
  控制是否启用重定向,bool类型,选择True为启用,选择False为禁用import requests >>> r = requests.get("http://github.com", allow_redirects=False) >>> r.status_code  301proxies参数
  设置代理,dict格式,key值为选择的协议,可以分别设置http请求和https请求的代理。import requests  proxies = {   "http": "http://10.10.1.10:3128",   "https": "http://10.10.1.10:1080", }  requests.get("https://api.github.com/events", proxies=proxies)verify参数可以传入bool值或者string,默认为True。
  如果设置为False的即为忽略对SSL证书的验证;反之就是需要做验证;如果传入值为string的话,代表指定本地的证书作为客户端证书。从本地传入证书import requests>>> requests.get("https://github.com", verify="/path/to/certfile")忽略对SSL证书的验证import requests>>> requests.get("https://kennethreitz.org", verify=False)
  另外三个重要参数json、cookies、auth则会在后面的章节进行详细的介绍。接口请求断言
  接口请求断言是指在发起请求之后,对返回的响应内容去做判断,用来查看是否响应内容是否与规定的返回值相符。响应内容
  在发起请求后,我们使用一个变量r存储响应的内容,也就是Response对象。>>> import requests >>> r = requests.get("http://httpbin.org/get") >>> print(r)  >>> import requests >>> r = requests.get("http://httpbin.org/get") >>> print(r) 
  Response对象有很多功能强大的方法可以调用,比如直接获取响应头,获取Unicode编码后的响应内容,获取二进制的响应内容,获取原始的响应内容等等。获得响应头>>> r.headers {"Date": "Sun, 05 Apr 2020 16:38:09 GMT",  "Content-Type": "application/json",  "Content-Length": "308", "Connection": "keep-alive",  "Server": "gunicorn/19.9.0",   "Access-Control-Allow-Origin": "*",   "Access-Control-Allow-Credentials": "true"}获得编码后的响应值>>> print(r.text) {   "args": {},    "data": "",    "files": {},    "form": {     "hogwarts": [       "a",        "b",        "c"     ]   },    "headers": {     "Accept": "*/*",      "Accept-Encoding": "gzip, deflate",      "Content-Length": "32",      "Content-Type": "application/x-www-form-urlencoded",      "Host": "httpbin.org",      "User-Agent": "python-requests/2.22.0",      "X-Amzn-Trace-Id": "Root=1-5e8a01e3-0913fca09ac605ccc911ccde"   },    "json": null,    "origin": "113.118.101.232",    "url": "http://httpbin.org/post" }
  还可以使用r.raw获得原始响应内容,r.content获得二进制的响应内容,另外还有编码为json格式的响应内容,会在后面的章节进行详述。

华为全家桶搭配分享寻找数码点评派说说看你现在用的什么互联设备,一起来聊一聊,月薪一万到三千怎样打造华为全家桶,以下内容仅供参考一月薪一万元作为高收入白领,华为全家桶闭眼入,可以先来个Mate50不是原神怪谈非酋?欧皇?欧非守恒?原神怪事真多,不论是up池还是常驻池,大家有没有经常歪某个角色或某把武器,亦或是总有那么一个角色总是歪不到。玄不改非,氪不改命是大家常拿来自嘲的,运气总有好坏,昨天是非酋,今天就可MHRPS5版M站86分XSX版87分必玩之作!怪物猎人崛起已经于今日正式登陆PS及Xbox平台,而本作的M站评分也已经公布,PS5版均分86分,XSX版均分87分。本作为卡普空怪物猎人系列新作,故事发生在炎火村,一个风箱炼铁盛梦幻照进现实!梦幻西游联动古都西安中国年,共约兔年!唐朝作为中国历史封建社会的繁盛时期,其辉煌灿烂的盛唐文化在中华民族传统文化中有着浓厚的影响力,并逐渐形成了盛唐文化,在国外,唐文化甚至一定程度上代表着中国文化。唐朝富足开明又飘逸浪和平精英X玛莎拉蒂再度联名,三款车型新春炫目登场!最近,和平精英再次与意大利知名豪华汽车品牌玛莎拉蒂梦幻联动,带来第二期全新专属定制载具,于大年三十上线!在热闹的新年开上新车,为新一年加足马力,在游戏中尽情感受玛莎拉蒂精英,天生中Canna我们还没和强队打过,想用杰斯carry比赛1月21日讯昨日LCK春季赛,DK20击败LSB韩媒xportsnews赛后采访到DK上单Canna选手,采访节选翻译如下(欧宝电竞资讯)Q比赛感想如何呢?Canna我们打了两场比急性乳腺炎(哺乳期)一概述急性乳腺炎是乳腺的急性化脓性感染,多为产后哺乳的妇女,尤以初产妇更为多见,多发生在产后34周,致病菌大多为金黄色,常引起深部脓肿,少数为链球菌,引起弥漫性蜂窝织炎。二病因1乳瑞兔宝宝来啦,超喜庆!还有鼠牛虎年生肖宝宝的新春祝福,我们也集齐了!图说0时46分,瑞兔宝宝在一妇婴东院产房诞生新民晚报记者郜阳摄瑞兔宝宝并不如预期中掐着秒表一跃而来,直到0时46分,响亮的啼哭声才在产房里响起。除夕白天很忙碌,晚上倒是不多了。这也妇产科普孕期用药该吃还得吃俗话说是药三分毒,尤其在怀孕这个敏感期,生病吃药需谨慎!药物致畸在孕期的不同阶段其轻重程度,影响部位有不同。孕早期是药物致畸敏感期。用药不当容易引起胎儿五官骨骼四肢等各种畸形发生的年龄越大,越要多吃肉?医生建议50岁过后,不妨多吃3种肉很多人觉得上了年纪后就不能吃太过于油腻的食物,随着年龄的增加,消化能力逐渐减弱,如果经常吃太过于油腻的食物,在体内将无法及时消化分解,会让脂肪在体内累积,导致出现心血管方面的问题。红薯对糖尿病患者到底是有利,还是不利?医生一文说清楚在日常生活当中,大家对红薯都不陌生了,它不仅是一种非常常见的食材,而且在改善人体微循环方面,也有非常突出的作用。不过,对于糖尿病患者来说,也要正确食用红薯,因为红薯当中含有大量的糖
生活特别像层塔最快心的一次旅行,是刚去青岛出了火车站就到了栈桥。在去青岛前没有做攻略,想着走到哪算哪。果然没有打算的旅游会带给你惊喜。栈桥一座延伸到海里的层塔,看起来好像很热闹,被人围着拍照都找飞机上有4种隐藏服务,主动向空姐提才能享受到,看完涨知识随着交通行业的不断发展,现如今人们出门的交通工具也就变得越来越多了。对于经济实力较好的乘客们来说,多数的他们在出远门的时候,都会搭乘速度较快的飞机出行。(此处已添加小程序,请到今日60岁前,一定要去的20个古镇,既美又有烟火气,你准备好了吗?生命里总要有一段静谧的时光过一阵慢下来的日子好想带你去古镇小住几天!发呆沉思共享寂静偷得浮生半日闲心情半佛半神仙在在不老的时光里你能一直看着我微笑幽静的古镇里我们都能有一段静谧的时川西大环游(四)石墨公园第一次品尝沙棘果昨天我们一早从汶川县映秀镇出发,往四姑娘山,以为赶个早,然而一路堵车,到达目的地根本上不去了,连停车的地方都找不到。我们只好撤出往下一个景区赶,然而还没到达下景区,天都黑了。今日,讲好中国故事传播好中国声音来源人民网人民日报海报图片为电视纪录片摆脱贫困记住乡愁如果国宝会说话电视综艺节目典籍里的中国海报。图电视剧觉醒年代剧照。图电视剧跨过鸭绿江剧照。图电视剧功勋剧照。图电视剧埃博拉前线到底什么是雷电接口,这个接口有什么用?文小伊评科技首先我们要弄懂什么是雷电接口。其实雷电本质上和咱们常见的HDMI,DP等一样是一种传输协议的简称,全程英文名叫做Thunderbolt。请注意与其说他是一个接口倒不如说八位堂pro2蓝牙手柄评测游戏的最佳伴侣很多学生玩过游戏机的朋友,都很难进行再次选择回到触控的手机网络游戏上。手感很大程度上能够决定了游戏的体验感,一旦使用过游戏机,就会想为我们每一个游戏都配上手柄操控。现在,这个问题想C关于调用微信接口的代码之前公司下达了开发微信只一块的任务,然后我就去网上取了一番经,可是感觉对于我这种微信开发的新手来说,所需要的东西太多,太凌乱了,然后整个人就懵逼了。费了很长时间才将微信接口调用完成家长注意了!8个月宝宝充电线含嘴里取出时已冒烟接口烧出个洞身处电子时代,如今手机也成了大家日常生活中必不可少的一部分,大家平时手机都是怎么充电的呢?可能有些人会觉得我这个问题很傻,手机还能怎么充电,就是用充电器插在插头上充电啊。那么大家平经典与潮流碰撞的好声音,尊宝JamoRS3无线蓝牙音箱分享作为一个伪音乐爱好者,除了收集各种专辑,也少不了大大小小各种音频设备,手上有雅马哈,松下,山进几个牌子的音箱。最近又体验了一番尊宝JamoRS无线蓝牙音箱。Jamo尊宝RS3无线蓝升级换新装,更快更防水南卡骨传导PRO3蓝牙耳机体验南卡骨传导耳机的版本迭代的特别快,PRO2版本才推出没多久,PRO3版本火急火燎的就上市了,那么南卡骨传导PRO3有哪些提升呢?带着这个疑问,我来看看这款产品。开箱南卡骨传导PRO