上一篇我们学习了怎么发送各种数据类型的http请求,这一篇我们来介绍怎么来解析接口返回的XML的数据. 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如下: <?xml version="1.0" encoding="utf-8"?> <ResponseWithResponseInfo> <code>00</code> <message>SUCCESS</message>…
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部调用这个参数,那么如何实现呢? 虽然python里面有个全局变量global,但这个只是针对于在同一个.py里才有效,跨脚本就不起作用了. 解决思路 1.首先把公共数据单独抽出来,用一个文件去管理,如yaml文件 2.写一个读yaml文件的get_token()函数放到a.py,去读取需要的数据 3…
Golang解析和封装XML 解析XML成结构体Demo package main import ( "encoding/xml" "fmt" ) //我们通过定义一个结构体,来解析xml //注意,结构体中的字段必须是可导出的 type Books struct { //如果有类型为xml.Name的XMLName字段,则解析时会保存元素名到该字段 XMLName xml.Name `xml:"books"` //定义的字段中包含,attr,则…
前言 做接口测试的时候,大部分情况下返回的是json数据,我们需要对返回的json断言. 当返回的数据量比较大,并且嵌套的层级很深的时候,很多小伙伴不会取值,往往在返回结果取值上浪费很多时间.一直在寻找一个方便json的库,今天找到了.于是就有了 jsonpath 解析库,专门解决 json 路径深,取值难的问题. 字典取值 对接口返回的接口,转成 dict 类型,通过字典键值对取值 # QQ交流群:902061117 # 返回结果,这里是dict 1 result = { 2 "code&qu…
传递数据为xml形式的post请求 请求体内容: <?xml version=“1.0” encoding = “UTF-8”?> <COM> <REQ name="平常心"> <USER_ID>pcx</USER_ID> <COMMODITY_ID>123456</COMMODITY_ID> <SESSION_ID>absbnmasbnfmasbm1213</SESSION_ID&g…
背景: 项目中需要做接口自动化测试,使用robot,有一个收货地址列表的接口直接传参数访问时会返回:{"msg":"缺少参数","code":-404},实际上就是由于没有登录,所以系统内部接口不能直接访问. 在浏览器中先登录上,再访问收货地址列表接口,可以看到请求头需要一个login-token,服务器正是以此来判断是否登录.所以在访问该接口时要把登录后的token添加到headers中. 将登录后的token添加到headers中,其他和po…
//post 请求 private static String sendPost(String url, String urlParameters) throws Exception { URL obj = new URL(url + urlParameters); System.out.print("URL:" + url + urlParameters); HttpURLConnection con = (HttpURLConnection) obj.openConnection(…
根据不同的请求类型(GET/POST)进行接口请求封装 import requests import json class RunMain: def __init__(self, url, method, data=None): self.res = self.run_method(url, method, data) def send_get(self, url, data): """ 发送get请求 :param url:请求地址 :param method:类型(GET…
实现代码如下: #接口调试 import requests,time class api_demo1: def __init__(self,RequestWay,url,data): self.s=requests.session() self.get_login(RequestWay,url,data) #登录(只考虑了get.post请求) def get_login(self,RequestWay,url,data): if RequestWay == 'post': result = s…
签名参数sign生成的方法: 在接口开发过程中,一般通过时间戳+sign作为密匙加密传输 实现代码如下: #python实现sign签名 import hashlib,time class sign: def get_time(self): t1=time.time() t=int(t1) return t def get_str(self,t,apikey): st=str(t) c=st+apikey return c def get_md5(self,c): md5=hashlib.md5…