在项目下新建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文件中进行配置的

现在的项目结构如下图

python3+requests库框架设计06-测试脚本的更多相关文章

  1. python3+requests库框架设计01-自动化测试框架需要什么?

    什么是自动化测试框架 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 接口自动化测试框架核心无非是选择 一个用来编 ...

  2. python3+requests库框架设计08-发送邮件

    使用python3的email模块和smtplib模块可以实现发送邮件的动能.email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并 ...

  3. python3+requests库框架设计05-unittest单元测试框架

    unittest单元测试框架,主要由四部分组成:测试固件.测试用例.测试套件.测试执行器 测试固件(test fixture) 测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫 ...

  4. python3+requests库框架设计04-配置文件

    python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如u ...

  5. python3+requests库框架设计03-请求重新封装

    在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个Common文件夹,在文件夹下新建Base_test.py文件,项目结构如下. 具体怎么封装还是要看被测 ...

  6. python3+requests库框架设计02-封装日志类

    首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...

  7. python3+requests库框架设计07-生成测试报告

    使用HTMLTestRunner可以生成测试报告.HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址.下载之 ...

  8. 【STM32H7教程】第12章 STM32H7的HAL库框架设计学习

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第12章       STM32H7的HAL库框架设计学 ...

  9. python3 requests库学习笔记(MOOC网)

    奏:HTTP协议对资源的操作 方法说明:GET 请求获取URL位置的资源HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息POST 请求向URL位置的资源后附加新的数据PUT 请求 ...

随机推荐

  1. 网络运维必回的模拟器-GNS软件下载和安装

    网络运维必回的模拟器-GNS软件下载和安装 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.GNS简介 1>.什么是GNS GNS3是一款具有图形化界面可以运行在多平台( ...

  2. Hbase学习01

    1.1  快速介绍 1.1.1 快速入门,单节点Hbase 本小节介绍单节点独立HBase的设置. 独立实例包含所有HBase守护进程 - Master,RegionServers和ZooKeeper ...

  3. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] 学习

    http://www.cnblogs.com/jjg0519/p/6707513.html

  4. SpringSecurity3Demo【原】

    oschina git地址: https://gitee.com/KingBoBo/SpringSecurity3Demo.git

  5. STL优先队列

    #include<cstdio> #include<iostream> #include<algorithm> #include<queue> usin ...

  6. 细说java系统之动态代理

    代理模式 在深入学习动态代理之前,需要先掌握代理模式.只有深刻理解了代理模式的应用,才能充分理解Java动态代理带来的便利. 在生活中存在许多使用"代理模式"的场景,比如:村里的张 ...

  7. Android资源重命名

    Android资源比如图片重命名后,Resource里看到的还是之前的名字,可以关掉AndroidStudio,从新打开就正常了

  8. 患者信息SQL v1

    select THEN '是' ELSE '否' END AS returnFlag, -- 是否退号 THEN '是' END as isAppointResource, -- 是否指定医生 a.c ...

  9. UIBezierPath基本使用

    UIBezierPath * aPath = [UIBezierPath bezierPathWithArcCenter:point radius:5 startAngle:0 endAngle:2 ...

  10. bzoj 1531 Bank notes 多重背包/单调队列

    多重背包二进制优化终于写了一次,注意j的边界条件啊,疯狂RE(还是自己太菜了啊啊)最辣的辣鸡 #include<bits/stdc++.h> using namespace std; in ...