最简单的接口测试

今天利用unittest+requests来分享一个简单的接口测试,下面开始吧!

1、接口测试的几个基本元素就是url,method(常用的请求方式就是get和post),data以及headers,只有先拿到这几样东西,我们才可以进行下一步的工作
2、测试的意义就是想知道符不符合预期,所以要设置断言
3、为了更直观看出运行结果,我们用HTMLTestRunner编写报告

接口测试的通用模板一般是:

import requests
res=requests.method(url=url,data=data,headers=header)  #获取response响应的内容

Apitest.py放在TestCase文件夹下

# Apitest.py
import unittest
import requests
import json


class TestApi(unittest.TestCase):

    #获取登录的cookies
    cookies=requests.post(url='服务器地址/api/client/login',data={'openid': 1234, 'open_token': 1234}).cookies

    def setUp(self) :
        print("接口测试开始")

    def test_postapi(self):
        print('这是post请求')
        url='服务器地址/api/client/login'
        data={'openid': 1234,'open_token': 1234}
        res = requests.post(url=url, data=data).json()    #res的结果是:{'ok': True, 'result': {'msg': 'ok'}}
        #设置断言
        self.assertTrue(res['ok'], 'login接口报错了')

    def test_getapi(self):
        print('这是get请求')
        url='服务器地址/api/client/info'
        res =requests.get(url=url,cookies=self.cookies).json()    #res的结果是:{'ok': True, 'result': {'lottery_chance': 3, 'is_finish_task_1': 0, 'is_finish_task_2': 0, 'is_card_lottery': 0, 'is_use_invite_lottery': 0, 'is_win_invite_lottery': 0, 'card_list': [], 'invitee_list': [], 'time': 1569306427889}}
        
        #设置断言
        self.assertTrue(res['ok'],'client/info接口报错了')

    def tearDown(self):
        print("接口测试结束")

if __name__=='__main__':
    unittest.main()

接下来看下执行结果:
在这里插入图片描述
写到这里,如果有个测试报告,是不是感觉高级点了呢,那么下面就来编写个测试用例报告吧
(注意,用例和报告分开写)

#新建报告Report.py
from HTMLTestRunner import HTMLTestRunner
import unittest
import os

current_path=os.getcwd()
case_path=os.path.join(current_path,"TestCase")
report_path=os.path.join(current_path,'Report')

def load_all_case():
    discover=unittest.defaultTestLoader.discover(case_path,pattern="Apitest.py")
    return discover

if __name__=='__main__':
    report_title='测试用例报告.html'
    result_path=os.path.join(report_path,report_title)
    desc='两个用例报告'

    with open(result_path,'wb') as report:
        runner=HTMLTestRunner(stream=report,title=report_title,description=desc)
        runner.run(load_all_case())

好的,接下来看看报告
在这里插入图片描述
那么,一个简易的接口测试就完成了,不过这种做法的缺点就是每增加一个用例就要增加一个test方法,复用性很差。下期会给大家分享一个进阶版的接口测试,利用unittest+ddt+excel以及代码的封装,实现接口的自动化测试。想学请点击Unittest+ddt+excel实现接口自动化测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁太太的小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值