requests与unittest自动化校验

Posted iT小明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests与unittest自动化校验相关的知识,希望对你有一定的参考价值。

import requests
import unittest, json
import parameterized


# 1.定义一个函数
def test_login(username, password):
    # 请求的URL
    url = \'http://yun.zenm.vip/iot/account/login/\'
    # 请求的数据
    data = {
        \'username\': username,
        \'password\': password
    }
    # json.dumps(data) 将字典转为json格式
    data_json = json.dumps(data)
    # 发起请求,headers是请求头的数据,data是请求所携带的参数。
    res = requests.post(url=url, data=data_json)
    # 把返回的数据转为json
    json_data = res.json()
    print(res.json())
    return json_data


# 2.为当前接口写测试用例
class YunCeShi(unittest.TestCase):
    # parameterized方法 用装饰器 一次执行多个测试用例
    @parameterized.parameterized.expand(
        [(\'peter\', \'admin\', 200), (\'peter\', \'123456\', 4), (\'peter11\', \'admin\', 5)]
    )
    def test_01(self, username, password, code):
        # 获取requests请求后的数据
        json_data = test_login(username, password)
        # 断言 请求后返回的状态码与测试用例里的是否一致 不一致就断言失败
        self.assertEqual(json_data[\'result\'], code)

    # # 执行单个测试用例,一个一个执行
    # # 错误的密码
    # def test_02(self):
    #     username = \'peter\'
    #     password = \'123456\'
    #     result = 4
    # 
    #     # 获取requests请求后的数据
    #     json_data = test_login(username, password)
    #     self.assertEqual(json_data[\'result\'], result)
    # 
    # # 错误的用户名
    # def test_03(self):
    #     username = \'peter11\'
    #     password = \'admin\'
    #     result = 5
    # 
    #     # 获取requests请求后的数据
    #     json_data = test_login(username, password)
    #     self.assertEqual(json_data[\'result\'], result)

from htmlTestRunner import HTMLTestRunner
import unittest
from yun.yun_test import YunCeShi

# 3.将测试用例写入套件
suite = unittest.TestSuite()
# 3.1 unittest.makeSuite(类名)  makeSuite方法是将整个类的测试用例写入套件
suite.addTest(unittest.makeSuite(YunCeShi))


# 4.生成测试报告

# 4.1 wb 是 以二进制形式写入文件

stream:指定输出的方式

tester:报告中要显示的测试人员的名字

description:报告中要显示的面熟信息

title:测试报告的标题

verbosity :表示测试报告信息的详细程度,一共三个值,默认是2 0 (静默模式):你只能获得总的测试用例数和总的结果,如:总共100个 失败10 成功90 1 (默认模式):类似静默模式,只是在每个成功的用例前面有个. 每个失败的用例前面有个F 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息

f = open(\'yun.html\', \'wb\')
# 4.2 指定HTMLTestRunner的参数
runner = HTMLTestRunner(stream=f, title=\'云测试\', description=\'浏览器\')
# 4.3 生成测试报告
runner.run(suite)
# 4.4 关闭文件
f.close()

 

以上是关于requests与unittest自动化校验的主要内容,如果未能解决你的问题,请参考以下文章

python+requests随笔:unittest框架

python3+requests+unittest:接口自动化测试

使用requests+unittest进行接口测试

Python3+Selenium3+Unittest+ddt+Requests 接口自动化测试框架

Python接口测试之对MySQL/unittest框架/Requests 的操作

接口自动化测试 unittest+request+excel