python接口自动化测试_第1页
python接口自动化测试_第2页
python接口自动化测试_第3页
python接口自动化测试_第4页
python接口自动化测试_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

概念环境准备:你想用的版本(本文介绍的版本3.5的版本。安装后,添加系统环境变量。在cmd中输入python,地址,然后进入cmd。进入下 ,安装pythonsetup.pyinstallcmdpipinstallrequestsimport requests­­/zhhttpwebhttphttpgetpost,put,delete口测试的过程就是(浏览器)向server(服务器端)request一个请求,server得到请求后,response返回给响应数据如在搜索输入selenium-python返回结果,如图 PUT:URL,update。在接口测试中,一般来说,postget指定的数据,put可以对创建成功后的数据进行修改,delete是指定的资源。http状态码含义:1xx:消息 描述100Continue 101SwitchingProtocols 2xx:成功 200 201 202 203Non-­­authoritativeInformation 204NoContent 205ResetContent 206PartialContent 3xx:重定向消息 描述300MultipleChoices 301Moved 302Foundurl303See 304NotModified未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供I-­Modd--­Since头表示客户只想比指定日期更新的文305Use客户请求的文档应该通过Location头所指明的服务器提取307TemporaryRedirect 4xx:客户端错误消息:描述400Bad 401 被请求的页面需要用户名和402PaymentRequired403Forbidden对被请求页面的被404NotFound405MethodNot 406NotAcceptable407AuthenticationRequired用户必须首先使用服务器进行验证,这Request GoneLengthRequired tet-­Length"未被定义。如果无此内容,服务器不Precondition RequestEntityTooLarge ut--­urlTooLongurlpost请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。UnsupportedMedia 5xx:服务器错误消息:描述InternalServer Not Bad Service Gateway HTTPVersionNotSupported HTTP协议版四:python接口之http请求importimporturl=''Date:Mon,20Feb201708:08:36Content-Type:text/html;charset=utf-8Transfer-Encoding:chunkedConnection:CloseVary:Accept-Set-:BAIDUID=D3E5547ACC26D3908EBB29522BABCCD4:FG=1;31-Dec-3723:55:55GMT;max- ;Set-:BIDUPSID=D3E5547ACC26D3908EBB29522BABCCD4;31-Dec-3723:55:55GMT;max- ;Set-: ;expires=Thu,31-Dec-3723:55:55 ;path=/;Set-:BDSVRTM=0;Set-:BD_HOME=0;Set-:H_PS_P=21935_1455_21090_17001_22036;P3P:CP="OTIDSPCORIVAOURINDCOMCache-Control:Cxy_all:baidu Expires:Mon,20Feb201708:08:33GMTServer:BWS/1.1BDPAGETYPE:1BDUSERID:0importimporturllib.requestimporturllib.parseurl='http://openapi/api'data={"key""your","info":你好data=urllib.parse.urlencode(data).encode('utf-8')200GETimportimportr=requests.get('https://')'chunked','Pragma':'no-cache','Cache-Control':'private,no-cache,no-store,-revalidate,no-transform','Content-Encoding':'gzip','Date':'Mon,20Feb201708:30:29GMT','Server':'bfe/8','Connection':'keep-alive','Content-Type':'text/html','Set-':'BDORZ=27315;max-age=86400; ;path=/, 03_00_7_N_N_2_0301_002F_N_N_N_0;expires=Mon,20-Feb-1708:30:34GMT;do ;path=/'}importimportpayload={'key1':'value1','key2':'value2'r=",结果{"args":"data":"form":"key1":"key2":{"Accept":"Accept-Encoding":"gzip,deflate","Content-Length":"23","Content-Type":"application/x-www-form-urlencoded","Host":"","User-Agent":"python-"json":"origin":"origin":"url":"五:python数列化和反序列化python的对象编码转json格式的字符串,反序列化可以理解为:把json格式字符串为python数据对象。在python的标准库中,专门提供了json库导入,查看json要方json的主要方法['dump','dumps','load','loads','JSONDecoder','JSONEncoder']import diimport dict1={'name':'leizi','age':24,'address':print(u未序列化前的数据类型为print(u未序列化前的数据:',dict1)#dict1进行序列化的处理print(u序列化后的数据类型为print(u序列化后的数据为结果:未序列化前的数据类型为:<class未序列化前的数据:{'age':24,'name':'leizi','address': 序列化后的数据类型为:<class{"age":24,"name":"leizi","address":我们再反序列化,把json格式的字符串为python的数据对象,见实现的代码和输出importimport ','age':24,'address':print(u未序列化前的数据类型为print(u未序列化前的数据:',dict1)#dict1进行序列化的处理print(u序列化后的数据类型为:',type(str1))print(u序列化后的数据为:',str1)#str1进行反序列print(u反序列化后的数据类型:',type(dict2))print(u反序列化后的数据:',dict2)未序列化前的数据类型为:<class未序列化前的数据:{'age':24,'name':'','address':'序列化后的数据类型为:<class{"age":24,"name":"\u96f7\u5b50","address":反序列化后的数据类型:<class反序列化后的数据:{'age':24,'name':'','address':'结合requests库,来看返回的json数据,具体importimport r=requests.get('http://w/weather_mini?print(r.text,u数据类型print(dic,u数据类型","forecast":[{"fengxiang":"北风","fengli":"4-5","high":"6℃","type":"多云","low":"2℃","date":"20"},{"fengxiang":"南风","fengli":"微风级","high":"高温1℃","type":"低温-","fengli":"3-4","high":"8℃","type":"阴","low":"日星期三","high":"8℃","type":"晴","low":"2℃","date":"23"},{"fengxiang":"北风","fengli":"微风级","high":"低温-","fx":"北风","high":"高温15℃","type":"多云","low":"低温-{'status':1000,'data':{'city':'','yesterday':{'fx':'北风'low':2℃'},'forecast':[{'fengxiang':'low':2℃','fengli':4-5'date':'20'high':'date':'21'high':1℃','type':'high':8℃','type':{'fengxiang':'low':2℃','fengli':date':'23'高温8℃','type':'晴'},{'fengxiang':'北风','low':'低温-'fengli':'date':'24'high':10℃','type':'ganmao':据类型:<class'dict'>五:使用python进行组织编写接口测试用例拿到接口的url地址查看接口是用什么方式发送添加请求头,请求体发送查看返回结果,校验返回结果是否正确importimport#url=/v2transapi"#params="from":"en","to":"zh","query":"test}##r=requests.request("post",url,##其实到上面就已经完了,因 不字importd=json.loads(r.text)importurlimporturl=/v2transapiparams="from":"en","to":"zh","query":"study"}r=requests.request("post",url,importd=importimportclassTestbaiduapi(unittest.TestCase):defsetUp(self):url= /v2transapideftestzhen(self):params={"from":"en","to":"zh","query":"study"}url=/v2transapi"r=requests.request("post",url, u'学习'indeftestzhen1params=url=r=requests.request("post",url,params=params) u学'in name=='main'在python中,提供了HTMLTestRunner.py来生成测试报告,把该文件后,直接放到安装文件的lib 下importrequests,unittest,json,HTMLTestRunnerclassTestbaiduapi(unittest.TestCase):defurl= /v2transapi"deftestzhen(self):params={"from":"en","to":"zh","query":"study"}url= /v2transapi"r=requests.request("post",url,params=params) u学习'inr['liju_result']['tag']deftestzhen2(self):params="from":"en","to":"h","query":"stud"}url= /v2transapi"r=requests.request("p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论