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)

    得到结果

  • 相关阅读:
    html添加遮罩层
    html绝对定位如何居中
    springboot上传文件到本地服务器
    遍历一个文件目录,把所有的子目录都列出来
    Java判断cookie中是否有某个具体的cookie
    Redis 如何打开rdb 文件
    crontab -e 如何保存退出
    linux服务器设备上没有空间
    IDEA的SonarLint插件报错Unable to create symbol table for
    使用Rome读取RSS报错,org.xml.sax.SAXParseException: 前言中不允许有内容。
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11562187.html
Copyright © 2011-2022 走看看