代码如下:
import unittest,requests,xmltodict,json from time import sleep from urllib import parse class TQ(unittest.TestCase): def setUp(self): self.url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName" self.headr={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"} def test_Tq_ok(self): city = {"theCityName": "上海"} city=parse.urlencode(city).encode('utf-8') r=requests.get(self.url,headers=self.headr,params=city) rdata=xmltodict.parse(r.text)#将xml转成str rjson=json.dumps(rdata,ensure_ascii=False,indent=1)#将str转换成dict rjson=eval(rjson)#将dict转换成json格式 self.assertEqual(rjson['ArrayOfString']['@xmlns:xsi'],'http://www.w3.org/2001/XMLSchema-instance') sleep(3) # 下面这条用例不知道是接口限制的问题还是什么问题,一直解决不了,望大佬解决 # def test_Tq_cscw(self): # city = {"theCityName": "123"} # city = parse.urlencode(city).encode('utf-8') # r = requests.get(self.url, headers=self.headr, proxies=self.prox, params=city)#此处是没有代理的值,问题已解决 # rdata = xmltodict.parse(r.text) # rjson = json.dumps(rdata, ensure_ascii=False, indent=1) # data=rjson.replace('null','404') # data = eval(rjson) # self.assertEqual(data['ArrayOfString']['string'][0], '查询结果为空!') # sleep(3) if __name__=='__main__': unittest.main
运行结果如下: