参考:https://www.cnblogs.com/du-hong/p/10766314.html
https://www.cnblogs.com/lanyinhao/p/9634742.html
一些API https://www.cnblogs.com/zhengyao9236/p/11122446.html
接口测试,之前学习使用Jmeter工具,现在学习一下Python代码怎么做的
运行环境:Python2.7
主要应用requests这个模块,pip install requests 就能安装。
#coding=utf-8
'''
Created on 2019年12月14日 参考https://www.cnblogs.com/du-hong/p/10766314.html
用酷狗音乐APP练习一下接口测试,主要使用requests模块
@author: derik
'''
import unittest
import requests
import json
class Test(unittest.TestCase):
#发送请求的方法,使用Fiddler选了酷狗App使用是的一个json响应,查看Inspectors->WebForms请求参数列表,先用浏览器访问了一下,确实返回了json数据
def send_requests(self,appid,clienttime,clientver,dfid,mid,userid,signature):
#请求的域名路径
url='https://longaudio.kugou.com/v2/list_audiobook_yueku'
#客户端信息Headers,使用字典
jsonData0={"User-Agent":"Android511-AndroidPhone-9305-52-0-AudioBook-wifi"}
#get请求参数,使用字典
jsonData2={"appid":appid,
"clienttime":clienttime,
"clientver":clientver,
"dfid":dfid,
"mid":mid,
"userid":userid,
"signature":signature}
result0=requests.get(url,headers=jsonData0,params=jsonData2)
result2=result0.url#字节输出
print("location:"+result2)#控制台查看一下发送的访问地址对不对
#requests内置json转换,出来的是json格式字符串,没有经过编码,中文会显示unicode 16进制数
print(json.dumps(result0.json(), encoding="utf-8", ensure_ascii=False))#查看一下响应结果
return result0.json()
def setUp(self):
pass
def tearDown(self):
pass
def test_One(self):
appid="1005"
clienttime="1576309585"
clientver="9305"
dfid="2lEy8t3qZRFP1QWIMq3r5Tx5"
mid="271740047210714992826376550560315174911"
userid="0"
signature="3ab61466fa3ce92fc4a5bd7f5bd32a59"
result=self.send_requests(appid,clienttime,clientver,dfid,mid,userid,signature)
print(result['status'])
print(result)
self.assertEqual(result['status'], 1, "test over")
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()
对于结果返回,以json格式提取其中的参数,使用unittest的assert断言判断,断言参数比较前两位是否一致,不一致就会输出第三位参数,提前设置好的提示消息。
顺便学习json模块的一些用法,这里json.dumps(),查到的资料是对Python对象(字典)转换json字符串,但这里也可以顺便用来转字符编码格式。