zoukankan      html  css  js  c++  java
  • python3+requests库框架设计06-测试脚本

    在项目下新建TestCase文件夹,然后新建.py文件在文件中写关于接口具体的测试脚本,一般我喜欢按照模块来分,一个模块一个.py文件,建议以test开头命名文件

    把配置文件改成这样 url:https://www.sojson.com/open/api/weather/json.shtml

    在TestCase文件夹下新建test_weathere.py文件,输入以下代码

    import unittest
    from Logs.log import log1
    from Common.Base_test import webrequests
    
    class weather(unittest.TestCase):
    
        def test_weather(self):
            '''查询天气'''
            case_name = '查询天气'
            log1.info("执行测试用例:%s" % case_name)
            try:
                weather = webrequests()#初始化测试基类的实例
                url = weather.confige_get('test','url',url='')#获取配置文件中的url
                payloda = {'city':'上海'}
                status_code,response_json =weather.get(url,params=payloda)#调用封装的get方法,接收状态码和相应内容
                message = weather.getdict(response_json,'message')#调用迭代字典方法,获得message字段的值
                test1 = self.assertEqual(status_code,200)#断言状态码等于200
                test2 = self.assertEqual(message,'Success !')#断言message字段的值等于'Success !'
                if test1 == None and test2 ==None: #如果两个断言结果都等于None
                    log1.info("测试通过")
            except BaseException as f :
                log1.error("测试用例执行出错: %s" % case_name,exc_info=1)
                raise

    这里要注意的是unittests的断言结果,成功是不返回值的,也就是None,并不是True。还有使用了try...except之后,一定要raise异常。不然之后使用HTMLTestRunner生成测试报告的时候,如果执行失败,因为异常不抛出是当做正常处理了,就不会记录在失败的里面的。其实一个项目的话,请求成功没成功,可以封装成一个方法。响应内容会比较统一。当然如果要断言其他结果的还是要单独写。

    在项目下新建entrance.py文件,输入以下代码并执行

    import TestCase.test_weather
    
    import unittest
    if __name__ == "__main__":
        suite = unittest.TestSuite()
        suite.addTest(TestCase.test_weather.weather('test_weather'))
        runner = unittest.TextTestRunner()
        runner.run(suite)

    测试用例的编写都是在TestCase这个文件夹下面,而测试用例的执行数量,执行顺序是在entrance.py文件中进行配置的

    现在的项目结构如下图

  • 相关阅读:
    Spring-整合MyBatis-声明式事务
    Spring-AOP
    Spring-使用注解开发
    Spring-bean的自动装配
    Spring-HelloSpring-IOC创建对象的方式
    Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    malloc/free 和 new/delete
  • 原文地址:https://www.cnblogs.com/myal/p/9337372.html
Copyright © 2011-2022 走看看