接口测试

 

当不能够白盒测试的时候,可以快速选择接口测试,测试后台逻辑

接口文档要素:

1、接口地址、请求方式
2、接口描述,使用场景,需要的前置,与其他接口的关系
3、请求头内容,有token、session等身份信息,需说明获取方式和有效期,提供示例数据
4、接口请求、响应报文结构,需说明参数类型、是否必填、长度、值代表信息和对应的描述,提供示例数据 5、就是创造测试数据,如果接口前置可以测试自行插入数据,需要提供接口使用的表的结构

接口测试要点:

json格式测试

传参非json,返回对应error值

默认值测试

确认默认值

异常类型测试

int、str等类型的转换

必传项测试

比传项不传,会有对应errorcode值

非必传项

不传有相应的结果

非空测试

Value=null

业务逻辑测试

查询数据库增删改查

兼容性

前端的兼容

错误码测试

错误码是否全面,是否清晰说明问题

数据异常测试

长度类型

返回值测试

内容,类型,

加密测试

 

组合场景测试

 

1.GET

 

# coding=utf-8
# author:
import requests  # 导入requests模块
import unittest  # 导入Python单元测试框架unittest
# import json  # 导入json

class 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 requests
import unittest


class 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

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值