欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

接口测试

程序员文章站 2024-03-24 10:20:28
...

 

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

接口文档要素:

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

 

 

相关标签: 接口测试