requests与unittest的自动化校验

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
    }
    # header 需要的头部信息
    header = {
        "Content-Type": "application/json"
    }
    # json.dumps(data) 请求的数据为字典 需要转为转为json格式
    data_json = json.dumps(data)
    # 发起请求,headers是请求头的数据,data是请求所携带的参数,url是请求接口的url
    res = requests.post(url=url, data=data_json, headers=header)
    # 把返回的数据转为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)) # 将测试用例逐个添加到套件里 # suite = unittest.TestSuite() # suite.addTest(TestSum(‘test_001‘)) # suite.addTest(TestSum(‘test_002‘)) # suite.addTest(TestSum(‘test_003‘)) # suite.addTest(TestSum(‘test_004‘)) # 批量执行一个py文件里面所有的用例 # suite = unittest.TestLoader().discover(‘./‘, ‘unittest_taojian.py‘) # 4.生成测试报告 # 4.1 wb 是 以二进制形式写入文件 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的自动化校验

上一篇:[HDU]6356 Glad You Came(ST表)


下一篇:逆向工程二之Cycript