接口测试

来源:互联网 发布:查看mysql 用户和授权 编辑:程序博客网 时间:2024/05/29 09:38
当不能够白盒测试的时候,可以快速选择接口测试,测试后台逻辑

1.GET

# coding=utf-8# author:import requests  # 导入requests模块import unittest  # 导入Python单元测试框架unittest# import json  # 导入jsonclass RequestGet(unittest.TestCase):    '''    使用requests模块的Get请求方法测试    '''    def test_get_without_param(self):        """        测试GET请求无参数        :return:        """        # 请求的接口地址        url = 'http://api.zhongchou.cn/deal/list?v=1'        # para = {}        # 获取响应内容        res = requests.get(url,)        # 将返回内容转换为json格式        jresult = res.json()        # print jresult        # 判断errno的值不为空        if (jresult['errno'] != ""):            # 断言:验证errno的值为0            self.assertEqual(0, jresult['errno'])  #            self.assertEqual(200,res.status_code)  # 验证返回的状态码为200            #print "接口/deal/list----------OK!"        else:            #print "接口/deal/list----------Failure!"if __name__ == '__main__':    unittest.main()

2、Post

# coding=utf-8# author:import requestsimport unittestclass RequestPost(unittest.TestCase):    '''    使用Requests的post请求测试登录接口    '''    def test_post_login(self):        # 测试登录        posturl = "http://api.zhongchou.cn/user/login?v=1"        postdata = {'identity': '18311338905', 'password': 'a000000'}        res = requests.post(posturl, postdata)        jresult = res.json()        print res.text        print  jresult['data']['userID']        if (jresult['errno'] != ""):            self.assertEqual('765a03f489ef55e284bcefd1', jresult['data']['userID'])            print "接口/user/login----------OK!"        else:            print "接口/user/login----------Failure!"            self.assertEqual(0, 1)if __name__ == '__main__':    unittest.main()
3.注意点

需要登录的接口,加入headers,token和session,可以通过抓包工具抓取或者问开发直接要

    #_/_/_/_/前置_/_/_/_/    def setUp(self):        self.headers = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) ',                   'Accept':'application/json',                        # 'Content-Type':'application/json',                   # 'Accept-Language ':'zh-CN',                        'X-CSRFToken':'KyeUya7GfZuMbJQ5xGxTI0xX4xUyC4yUCbBE3OdcNac76ni4WNPQLGP3Rtz7Z4bY',                   'Authorization':'JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjEwMDAwMDAwMDgxIiwidXNlcl9pZCI6MTE2NjksImVtYWlsIjoiIiwiZXhwIjoxNTE2NTE1MjYzfQ.jyGsMsY-Hxz-4kx6ILPOVC9s8wNVe6r_A3zoTc1vzLo'}    #/api/reading/begin/    def test_readingBegin(self):        result = requests.get('https://#####################',headers = self.headers)        self.assertEqual(200,result.status_code,'请求失败')
注意自己测试的服务器支持解析的格式

当时application/json的时候,我们使用

        result = requests.post('https://#####################',',json = self.postdata5,headers = self.headers)

用json=这种方式直接把字典类型的python数据转化成,json,


bingo