python写接口测试代码_python写运单接口测试(增改查)完整代码

importrequestsimportjsonfrom urllib importparseclassHttpWayBillRquest:'''运单的增改查'''

defaccess_token(self):'''获取token'''url= 'http://xxxxxxxxx.com'username= '12333'password= '12334566'res_json= requests.get(url, auth=(username, password)).json()print('access_token的结果为:\n', res_json)

datas_token= res_json['data']

token_data = datas_token['data']['access_token']

token_type= datas_token['data']['token_type']returntoken_type,token_datadefcreatewaybill(self, datas_create,token_type,token_data):'''创建单条或多条运单申请'''create_url= 'http://xxxxxxxxx.com'header={'Authorization': token_type+ ' ' +token_data,'Content-Type': 'application/json; charset=UTF-8'}

datas_json=eval(datas_create)res= requests.post(url=create_url, json=datas_json, headers=header)print('申请运单响应头:\n', res.headers)print('申请运单响应体:\n', res.text)defupdatewaybill1(self, delivery_id, data_update1,token_type,token_data):'''修改一条运单信息'''update_url1= "http://xxxxxxxxx.com''

header ={'Authorization': token_type + ' ' +token_data,'Content-Type': 'application/json; charset=UTF-8'}

datas_json=eval(data_update1)

res= requests.put(url=update_url1 + delivery_id, json=datas_json, headers=header)print('更新1条运单响应头:\n',res.headers)print('更新1条运单响应体:\n',res.text)defupdatewaybill2(self,data_update2,token_type,token_data):'''更新多条运单信息'''update_url2= 'http://xxxxxxxxx.com/'header={'Authorization': token_type + ' ' +token_data,'Content-Type': 'application/json; charset=UTF-8'}

datas_json=eval(data_update2)

res= requests.put(url=update_url2, json=datas_json, headers=header)print('更新多条运单响应头:\n',res.headers)print('更新多条运单响应体:\n',res.text)deffindwaybill1(self,delivery_id,token_type,token_data):'''查询1条运单信息'''finds_url1= 'http://xxxxxxx.com/'header={'Authorization': token_type + ' ' +token_data,'Content-Type': 'application/json; charset=UTF-8'}

url_finds1= finds_url1 +delivery_idprint('查询1条运单请求头:', header)print('查询1条运单请求url:', url_finds1)

res= requests.get(url=url_finds1, headers=header)print('查询1条运单响应头:\n', res.headers)print('查询1条运单响应体:\n',res.text)deffindwaybill2(self,find_data,token_type,token_data):'''多条件查找运单信息'''finds_url2= "http://xxxxxxxxx.com''

header ={'Authorization': token_type + ' ' +token_data,'Content-Type': 'application/json; charset=UTF-8'}

encode_data=parse.urlencode(find_data)

url_finds2= finds_url2 + '?' +encode_dataprint('多条件查询运单请求头:', header)print('多条件查询运单请求url:', url_finds2)

res= requests.get(url=url_finds2, headers=header)print('多条件查询运单响应头:', res.headers)print('多条件查询运单响应体:', res.text)

主代码:waybill.py

(1)获取token

from waybill.WayBill importHttpWayBillRquest

Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()print('token为:{0}\ntoken_type为:{1}\n'.format(Token[1],Token[0]))

结果为:

1563311-20191116122903403-1883140728.png

(2)创建运单信息

importrandomimporttimefrom waybill.WayBill importHttpWayBillRquest'''创建单笔'''datas_create=[{'order_id':'157179719834','delivery_type':'EMS','delivery_number':random.randint(10000000,9999999999999999),'remarks':time.strftime("%Y-%m-%d",time.localtime(time.time()))

}]#'''创建多笔'''#datas_create = [#{'order_id': '1571298310',#'delivery_type': 'EMS',#'delivery_number': random.randint(10000000, 9999999999999999),#'remarks': '2019-11-12', },#{'order_id': '1571451612',#'delivery_type': 'EMS',#'delivery_number': random.randint(10000000, 9999999999999999),#'remarks': '2019-11-12', }#]

Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()

Create= Waybillrquest.createwaybill(datas_create,Token[0],Token[1])

测试结果为:

access_token的结果为:

{'data': {'result': 'Request is Success', 'code': '0000', 'remarks': '请求成功', 'data': {'token_type': 'Bearer', 'expires_in': 7071, 'access_token': 'b75fd73216cc1191f1acd06b0be557ffea903fa20f561'}}, 'message': 'OK', 'status': '200'}

申请运单请求头:

{'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer b75fd73216cc1191f1acd06b0be557ffea903fa20f561'}

申请运单请求参数:

[{"delivery_type": "EMS", "order_id": "1571797198304084", "remarks": "2019-11-16", "delivery_number": 2971735057491385}]

申请运单响应头:

{'Set-Cookie': 'PHPSESSID=2103irfm70b3qqbdk; path=/, PHPSESSID=2103irfm70b3qqbdk; expires=Sat, 16-Nov-2019 04:54:42 GMT; Max-Age=1440; path=/', 'Keep-Alive': 'timeout=60', 'X-Powered-By': 'PHP/5.6.40', 'Server': 'Tengine', 'Pragma': 'no-cache', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Connection': 'keep-alive', 'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Date': 'Sat, 16 Nov 2019 04:30:42 GMT'}

申请运单响应体:

{"status":"200","message":"OK","data":{"code":"0000","result":"Request is Success","remarks":"请求成功","data":[{"order_id":"157179719834","delivery_id":"1573878642173493","error":false,"desc":""}]}}

(3)更新单条运单信息

importrandomimporttimefrom waybill.WayBill importHttpWayBillRquest

delivery_id= '1573872940367' #原始运单号

data_update1={'order_id': '15714523399','delivery_type': 'TNT','delivery_number': random.randint(10000000, 9999999999999999),'remarks':time.strftime("%Y-%m-%d",time.localtime(time.time()))

}

Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()

Update1= Waybillrquest.updatewaybill1(delivery_id, data_update1,Token[0],Token[1])

测试结果为:

ccess_token的结果为:

{'status': '200', 'message': 'OK', 'data': {'remarks': '请求成功', 'code': '0000', 'result': 'Request is Success', 'data': {'token_type': 'Bearer', 'expires_in': 6839, 'access_token': 'b75fd73216cc1191f1acd06b0be557ffea903fa20f561'}}}

更新1条运单响应头:

{'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Connection': 'keep-alive', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Pragma': 'no-cache', 'X-Powered-By': 'PHP/5.6.40', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html; charset=utf-8', 'Server': 'Tengine', 'Date': 'Sat, 16 Nov 2019 04:34:33 GMT', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'PHPSESSID=dmr786qduoqqchh; path=/, PHPSESSID=dmr786qduoqqchh; expires=Sat, 16-Nov-2019 04:58:33 GMT; Max-Age=1440; path=/', 'Keep-Alive': 'timeout=60'}

更新1条运单响应体:

{"status":"200","message":"OK","data":{"code":"0000","result":"Request is Success","remarks":"请求成功","data":{"delivery_id":"1573872940367","error":false,"desc":""}}}

(4)更新多条运单信息

importtimefrom waybill.WayBill importHttpWayBillRquest

data_update2=[

{"delivery_id": "1573461404", "delivery_type": "EMS", "delivery_number": "1573461404","remarks": time.strftime("%Y-%m-%d",time.localtime(time.time()))},

{"delivery_id": "1573461455", "delivery_type": "EMS", "delivery_number": "1573461455","remarks": time.strftime("%Y-%m-%d",time.localtime(time.time()))},

{"delivery_id": "1573461530", "delivery_type": "EMS", "delivery_number": "1573461530","remarks": time.strftime("%Y-%m-%d",time.localtime(time.time()))}

]

Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()

Update2= Waybillrquest.updatewaybill2(data_update2,Token[0],Token[1])

测试结果为:

access_token的结果为:

{'data': {'remarks': '请求成功', 'result': 'Request is Success', 'data': {'expires_in': 6634, 'access_token': 'b75fd73216cc1191f1acd06b0be557ffea903fa20f561', 'token_type': 'Bearer'}, 'code': '0000'}, 'message': 'OK', 'status': '200'}

更新多条运单响应头:

{'X-Powered-By': 'PHP/5.6.40', 'Date': 'Sat, 16 Nov 2019 04:37:58 GMT', 'Server': 'Tengine', 'Content-Encoding': 'gzip', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Pragma': 'no-cache', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Content-Type': 'text/html; charset=utf-8', 'Keep-Alive': 'timeout=60', 'Set-Cookie': 'PHPSESSID=754619tfmfep2lqmoh; path=/, PHPSESSID=754619tfmfep2lqmoh; expires=Sat, 16-Nov-2019 05:01:58 GMT; Max-Age=1440; path=/'}

更新多条运单响应体:

{"status":"200","message":"OK","data":{"code":"0000","result":"Request is Success","remarks":"请求成功","data":[{"delivery_id":"1573461404","error":false,"desc":""},{"delivery_id":"1573461455","error":false,"desc":""},{"delivery_id":"1573461530","error":false,"desc":""}]}}

(5)查找一条运单信息

from waybill.WayBill importHttpWayBillRquest

delivery_id= "15731193"Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()Find1= Waybillrquest.findwaybill1(delivery_id,Token[0],Token[1])

测试结果为:

access_token的结果为:

{'message': 'OK', 'status': '200', 'data': {'result': 'Request is Success', 'code': '0000', 'remarks': '请求成功', 'data': {'expires_in': 6567, 'token_type': 'Bearer', 'access_token': 'b75fd73216cc1191f1acd06b0be557'}}}

查询1条运单请求头: {'Authorization': 'Bearer b75fd73216cc1191f1acd06b0be557', 'Content-Type': 'application/json; charset=UTF-8'}

查询1条运单请求url: http://test.xapi.xborderpay.com/v3/delivery/1573119358

查询1条运单响应头:

{'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Content-Type': 'text/html; charset=utf-8', 'Server': 'Tengine', 'Connection': 'keep-alive', 'Set-Cookie': 'PHPSESSID=npmdjj39gmue5; path=/, PHPSESSID=npmdjj39gmue5; expires=Sat, 16-Nov-2019 05:03:05 GMT; Max-Age=1440; path=/', 'Pragma': 'no-cache', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Date': 'Sat, 16 Nov 2019 04:39:05 GMT', 'X-Powered-By': 'PHP/5.6.40', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Keep-Alive': 'timeout=60'}

查询1条运单响应体:

{"status":"200","message":"OK","data":{"code":"0000","result":"Request is Success","remarks":"请求成功","data":{"delivery_id":"15731193","order_id":"15731193027","date_pay":"2019-11-07 17:35:03","ship_name":"Julia Patterson","currency":"USD","amount":"66.66","delivery_type":"EMS","delivery_number":"1573119358","remarks":"2019-11-7","status":"0","is_checked":"1","is_activated":"1","by_added":"system"}}}

(6)多条件查找运单信息

from waybill.WayBill importHttpWayBillRquest

find_data={"is_checked": "1","status": "1","is_activated": "0","start_date": "2019-10-09","end_date": "2019-11-08"}

Waybillrquest=HttpWayBillRquest()

Token=Waybillrquest.access_token()

Find2= Waybillrquest.findwaybill2(find_data,Token[0],Token[1])

测试结果为:

access_token的结果为:

{'status': '200', 'message': 'OK', 'data': {'remarks': '请求成功', 'code': '0000', 'data': {'expires_in': 6377, 'token_type': 'Bearer', 'access_token': 'b75fd73216cc1191f1acd06b0be557ffea903fa20f'}, 'result': 'Request is Success'}}

多条件查询运单请求头: {'Authorization': 'Bearer b75fd73216cc1191f1acd06b0be557ffea903f', 'Content-Type': 'application/json; charset=UTF-8'}

多条件查询运单请求url: http://xxxxxx?status=1&start_date=2019-10-09&end_date=2019-11-08&is_activated=0&is_checked=1

多条件查询运单响应头: {'Content-Type': 'text/html; charset=utf-8', 'Set-Cookie': 'PHPSESSID=qle4d0m4jhtc5onr6; path=/, PHPSESSID=qle4d0m4jhtc5onr6; expires=Sat, 16-Nov-2019 05:06:15 GMT; Max-Age=1440; path=/', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'X-Powered-By': 'PHP/5.6.40', 'Pragma': 'no-cache', 'Cache-Control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Content-Encoding': 'gzip', 'Server': 'Tengine', 'Keep-Alive': 'timeout=60', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Date': 'Sat, 16 Nov 2019 04:42:15 GMT'}

多条件查询运单响应体: {"status":"200","message":"OK","data":{"code":"0000","result":"Request is Success","remarks":"请求成功","data":{"total":"0","data":[]}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux vim自动执行快捷键,Linux Vim快捷键操作命令整理

VIM中常用的替换模式总结1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可如果…

eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战

上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题。环境准备首先我们先模拟一下内存溢出的场景,以下这段代码在访问后肯定会造成堆内存…

spring boot自测_将测微仪与Spring Boot 2一起使用

spring boot自测这是快速入门,介绍了如何使用出色的Micrometer库来检测基于Spring Boot 2的应用程序并在Prometheus中记录指标 介绍 Micrometer在不同监视工具提供的客户端库上提供了基于Java的外观。 以Prometheus为例,如果我要将Java应用程序与Prome…

微软和 Windows 的发展简史

20世纪60年代中期,美国达特茅斯学院院长、匈牙利人约翰凯梅尼(J. Kemeny)和数学系教授托马斯卡茨(Thomas E. Kurtz)认为,像FORTRAN(世界上最早出现的计算机高级程序设计语言)那样的语…

elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新。之前我们聊过了 Elasticse…

服务器windows模拟linux环境,科学网—Windows不用虚拟机或双系统,轻松实现shell环境:gitforwindows - 刘永鑫的博文...

windows缺少shell命令支持用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便。还有想学习Linux Shell命令的小伙伴,一直没有一个很好的学习环境。双系统安装涉及分区改变对硬盘数据…

Mac OS 系统的发展历史

文章目录System 1.0(1984)System 2.0(1985)System 3.0(1986)System 4.0(1987)System 5.0(1987)System 6.0 (1988)System 7 (1991 )Sys…

苹果公司的电脑发展史——硬件篇

文章目录一、Apple I(1976)二、Apple II(1977)三、Lisa(1983)四、Macintosh(1984)五、PowerBook(1991)六、iMac(1998)七、iBook&#…

my.ini修改后服务无法启动_Spring Cloud Eureka 服务实现不停机(Zero-downtime)部署

问题互联网产品高速迭代,通常伴随着高频次的版本发布。部署新版上线需要重启服务,直接 kill 服务进程可能会造成服务短暂不可用,从而影响到正在使用的用户。Spring Cloud 项目中一般会用到 Ribbon 作为负载均衡,那么是不是只要保证…

苹果电脑 Mac OS X 系统诞生的故事和发展历史

文章目录CoplandNeXTRhapsodyOS XPublic Beta (Kodiak)Mac OS X v10.0 (Cheetah)Mac OS X v10.1 (Puma)Mac OS X v10.2 (Jaguar)Mac OS X v10.3 (Panther)Mac OS X v10.4 (Tiger)Mac OS X v10.5 (Leopard)Mac OS X v10.6 (Snow Leopard)Mac OS X Lion2001 年 3 月 24 日&#x…

Mac OS 的历史

文章目录概述1980年代前20世纪80年代20世纪90年代2000年以后概述 纵观电脑之历史,操作系统与计算机硬件的发展息息相关。 操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。 从最早的批处理模式开始,分…

java 反射 速度_Java反射,但速度更快

java 反射 速度在编译时不知道Java类的最快方法是什么? Java框架通常会这样做。 很多。 它可以直接影响其性能。 因此,让我们对不同的方法进行基准测试,例如反射,方法句柄和代码生成。 用例 假设我们有一个简单的Person类&#x…

macOS 内核之 OS X 系统的起源

文章目录一、苹果公司早期(1972-1991)二、苹果在操作系统上的尝试(1991-1997)2.1 Star Trek 项目 (1992-1993)2.2 Copland-Mac OS 8 (1994-1996)三、收购与转折(1996-1997)四、NeXT 篇章4.1 NEXTSTEP(1985-1997)4.2 OpenStep(1993-1997)五、Mach 的历史5.1 Rochester’s Intell…

docker create_Docker动手教程2.2:容器基本操作2

内容摘要暂停/取消暂停容器删除容器进入容器创建容器暂停/取消暂停容器暂停容器命令:docker pause 容器ID/容器名注意STATUS列,被暂停的容器的状态依旧是“Up”,但是后面括号显示为“Paused”。取消暂停命令:docker unpause 容器I…

关于 Mac OS X 内核技术来源

Mach(Multiple Asynchronously Communication Hosts) 是一个由卡内基梅隆大学开发的操作系统内核,Mach的开发是为了取代BSD的UNIX核心。 Mach 内核的设计目标之一是要兼容 Unix 系统。 当初他们的设想是,真正的操作系统可以作为一…

用C语言编程画出图形,C语言图形编程(六) -图形程序设计实例:零件图形的绘制...

实例:一个零件图形的绘制有一个零件图,如下:对图3-1中的零件图形,如何根据它所标注的尺寸,按照适当的顺序有步聚地画出该图形,这首先要分析此零件图形的几何关系,了解构成这个图形各线段的性质&…

mfc怎么获取进程的线程数_Python多线程获取小米应用商店App,看看我是怎么做到的

一、【项目背景】小米应用商店给用户发现最好的安卓应用和游戏,安全可靠,可是要下载东西要一个一个的搜索太麻烦了。而且速度并不是很快。今天小编就教大家利用多线程爬取小米应用商店的游戏模块,快速获取我们想要的软件安装包。二、【项目目标】目标 &a…

Linux Distribution Timeline for 2010(Linux 2010 年发行版时间线/族谱/发展图)

此图来自维基百科(wikimedia),具体地址为:https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg?uselangzh-hans#filehistory

git强制推送_Git 常用命令

Git 常用命令总结1. GIT 工作区add commitworking directory ------- index(stage) ---------- HEAD | | | | | | 工作目录 暂存区 …

golang 泛型_Golang 1.x版本泛型编程

本文介绍了Golang 1.x版本的泛型编程。往期回顾:浅谈动态追踪技术Go是一门天生为服务器程序设计的简洁的语言,因此Go的设计原则聚焦在可扩展性、可读性和并发性,而多态性并不是这门语言的设计初衷,因此就被放在了一边。虽然在2.0版…