python requests模块 接口测试实例

上个文章是用jmeter测试接口
jmeter可以用来做接口测试,requests模块也可以做,个人更喜欢用request模块做接口测试,几行代码就搞定一个接口,比使用jmeter方便多了,废话少说。下面我用python requests模块来测试接口,代码如下:

import unittest
import requests,json

class ApiTest(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.url = 'http://xxxxxxxxxxxxx'

    @classmethod
    def tearDown(self):
        pass

    def test_1_register(self):
        '''注册接口'''
        path = '/xxxxx'
        data = {'username':'shawnxie','password':'123456',
        'password_confirmation':'123456'}
        r = requests.post(url=self.url + path, json=data)
        self.assertEqual(r.status_code,200)
        self.assertEqual(r.json()['username'],'shawnxie')

    def test_2_login(self):
        '''登录接口'''
        login_path = '/xxxxx'
        data={'username': 'shawnxie', 'password': '123456'}
        r_login = requests.post(url=self.url + login_path, json=data)
        self.assertEqual(r_login.status_code, 200)
        self.assertEqual(r_login.json()['username'], 'shawnxie')


    def getToken(self):
        '''获取token'''
        login_path = '/xxxxxx'
        data = {'username': 'shawnxie', 'password': '123456'}
        R = requests.post(url=self.url + login_path, json=data)
        return R.json()['token']



    def test_3_get_allTask(self):
        '''获取所有任务接口'''
        get_allTask_path = '/xxxxxx'
        get_allTask = requests.get(url=self.url + get_allTask_path, headers={'Authorization': 'Bearer ' + self.getToken()})
        self.assertEqual(get_allTask.status_code, 200)


    def test_4_create_task(self):
        '''创建任务接口'''
        create_task_path = '/xxxxx'
        data = {'title': 'shawnxie', 'desc': 'shawnxie'}
        create_task = requests.post(url=self.url + create_task_path, json=data,
                                    headers={'Authorization': 'Bearer ' + self.getToken()})
        self.assertEqual(create_task.status_code, 200)

    def getId(self):
        '''获取任务id'''
        create_task_path = '/xxxxxxx'
        data = {'title': 'shawnxie', 'desc': 'shawnxie'}
        create_task = requests.post(url=self.url + create_task_path, json=data,
                                    headers={'Authorization': 'Bearer ' + self.getToken()})
        return create_task.json()['id']

    def test_5_DeleteTask(self):
        delete_task_path = '/xxxxxx/:{0}'.format(self.getId())
        delete_task = requests.delete(url=self.url + delete_task_path, headers={'Authorization': 'Bearer ' + self.getToken()})
        self.assertEqual(delete_task.status_code, 200)

    def test_6_putTask(self):
        put_task_path = '/xxxxx/{0}'.format(self.getId())
        put_task = requests.put(url=self.url + put_task_path, headers={'Authorization': 'Bearer ' + self.getToken()})
        self.assertEqual(put_task.status_code, 200)

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


猜你喜欢

转载自blog.csdn.net/xiezhiming1234/article/details/82812242