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

Posted hemingwei

tags:

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

上一节是接口测试单条测试get/post,加上封装。

通过学习到unittest,使用其中的unittest.TestCase和Testsuit

 

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

import unittest
from conn.run_demo import RunMain   # 上一节写的类,进行调用
import htmlTestRunner
import json

class TestMethod(unittest.TestCase):    # 定义一个类,集成自unittest.TestCase

    def setUp(self):
        self.run = RunMain()            # 在初始化方法实例化一个对象,这样就不需要在每个测试用例中在进行实例化

    def test01(self):
        ‘‘‘此用例正常‘‘‘                 # 描述用例
        url = http://192.168.0.157:18005/oauth/token
        data = 
            clientId: xxxxxxxxxxxx,
            password: 123456,
            userName: admin,
            VerificationCode: ‘‘,
            VerificationCodeKey: "xxxxxxxxxxxx"
        
        r = self.run.run_main(url, POST, data)

        re = json.loads(r)
        self.assertEqual(re[msg], OK, pass)   # 断言出参的内容,进行判断,就跟测试用例里面的实际结果预期结果一样

    def test02(self):
        ‘‘‘此用例正常‘‘‘     # 描述用例
        url = http://192.168.0.157:18005/oauth/token
        data = 
            clientId: xxxxxxxxxxx,
            password: 123456,
            userName: admin,
            VerificationCode: ‘‘,
            VerificationCodeKey: "xxxxxxxxxxx"
        
        r = self.run.run_main(url, POST, data)

        re = json.loads(r)
        self.assertEqual(re[msg], OK, Pass)
        ‘‘‘
        断言前,用json库的json.loads()进行解码,因为之前传参的时候用json.dumps()对json格式的编码,
        虽然python字典格式与json格式都是一样的,但他们是不一样的;所以要进行编码解码操作
        ‘‘‘

    def test03(self):
        ‘‘‘错误的客户端‘‘‘
        url = http://192.168.0.157:18005/oauth/token
        data = 
            clientId: xxxxxxxxx,
            password: 123456,
            userName: admin,
            VerificationCode: ‘‘,
            VerificationCodeKey: "xxxxxxxx"
        
        r = self.run.run_main(url, POST, data)

        re = json.loads(r)
        self.assertEqual(re[msg], OK, Pass)

    #@unittest.skip(‘test04‘)        skip()可以进行跳过这条测试用例操作
    def test04(self):
        ‘‘‘密码错误‘‘‘
        url = http://192.168.0.157:18005/oauth/token
        data = 
            clientId: xxxxxxxxxxxxxxxxxx,
            password: 1123456,
            userName: admin,
            VerificationCode: ‘‘,
            VerificationCodeKey: "xxxxxxxxxxxxxxxxxx"
        
        r = self.run.run_main(url, POST, data)

        re = json.loads(r)
        self.assertEqual(re[msg], OK, Pass)

if __name__ == __main__:

    suite = unittest.TestSuite()  # 调用unittest的TestSuite(),理解为管理case的一个容器(测试套件)
    suite.addTest(TestMethod(test001))  # 向测试套件中添加用例,"TestMethod"是上面定义的类名,"test01"是用例名
    suite.addTest(TestMethod(test002))
    suite.addTest(TestMethod(test003))
    runner = unittest.TextTestRunner()
    runner.run(suite)

得到结果

技术图片

 

以上是关于接口自动化测试 unittest+request+excel的主要内容,如果未能解决你的问题,请参考以下文章

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

python+requests+unittest 搭建接口自动化测试框架

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

Python+unittest+requests 接口自动化测试框架搭建 完整的框架搭建过程 实战

接口自动化测试(Python+Requests+Unittest)

接口自动化测试(Python+Requests+Unittest)