zoukankan      html  css  js  c++  java
  • 接口自动化测试 python+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)

    得到结果

  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11562187.html
Copyright © 2011-2022 走看看