学习一下Python代码测试接口

参考: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字符串,但这里也可以顺便用来转字符编码格式。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值