做python自动化得时候怎么添加断言_python接口自动化(二十四)--unittest断言——中(详解)...
简介
上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京的天气,一个是查询
南京为例,你也可以查询别的城市的天气预报。
接口文档
1、在实际工作中,开发人员都会给你接口文档方便QA测试,和其他系统的开发人员对接。接口文档如下:
天气预报
获取实时天气
请求方式:POST
请求地址:https://www.apiopen.top/weatherApi
Query参数名类型必需描述示例 e.g.
city
string
是
城市名称
成都
返回示例:
[code]{
"code": 200,
"msg": "成功!",
"data": {
"yesterday": {
"date": "14日星期五",
"high": "高温 7℃",
"fx": "无持续风向",
"low": "低温 4℃",
"fl": "",
"type": "阴"
},
"city": "成都",
"aqi": "89",
"forecast": [
{
"date": "15日星期六",
"high": "高温 10℃",
"fengli": "",
"low": "低温 2℃",
"fengxiang": "无持续风向",
"type": "多云"
},
{
"date": "16日星期天",
"high": "高温 15℃",
"fengli": "",
"low": "低温 3℃",
"fengxiang": "无持续风向",
"type": "晴"
},
{
"date": "17日星期一",
"high": "高温 14℃",
"fengli": "",
"low": "低温 5℃",
"fengxiang": "无持续风向",
"type": "晴"
},
{
"date": "18日星期二",
"high": "高温 11℃",
"fengli": "",
"low": "低温 6℃",
"fengxiang": "无持续风向",
"type": "多云"
},
{
"date": "19日星期三",
"high": "高温 12℃",
"fengli": "",
"low": "低温 6℃",
"fengxiang": "无持续风向",
"type": "多云"
}
],
"ganmao": "昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。",
"wendu": "9"
}
}
2、如果没有你可以自己通过fiddler抓包获取参数和接口URL,以及请求方式 。
设计测试用例
1、针对以上接口,设计两个城市接口测试用例
2、运行接口用例结果
3、参考代码
1 # coding=utf-8
2 #1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
3
4 #2.注释:包括记录创建时间,创建人,项目名称。
5 '''
6 Created on 2019-4-26
7 @author: 北京-宏哥
8 Project:学习和使用unittest框架编写断言-中篇
9 '''
10 #3.导入requests和unittest模块
11 import requests
12 import unittest
13 #4.编写测试用例和断言
14 class TestWeather(unittest.TestCase):
15 '''测试天气预报接口''' # 此注释将展示到测试报告的测试组类
16 def test_beijin_weather(self):
17 '''查询北京天气预报''' # 此注释将展示到测试报告的用例标题
18 url = "https://www.apiopen.top/weatherApi"
19
20 par = {
21 "city": "北京", # 城市名
22 }
23 r = requests.post(url, params=par)
24 print(r.text) # 获取返回的结果
25 result = r.json()['code'] #获取状态码
26 print(result)
27 # 断言
28 self.assertEqual(200, result)
29 self.assertIn('msg', r.text)
30 self.assertTrue('北京'in r.text)
31 def test_nanjin_weather(self):
32 '''查询南京天气预报''' # 此注释将展示到测试报告的用例标题
33 url = "https://www.apiopen.top/weatherApi"
34 par = {
35 "city": "南京", # 城市名
36 }
37 r = requests.post(url, params=par)
38 print(r.text) # 获取返回的结果
39 result = r.json()['code']#获取状态码
40 print(result)
41 # 断言
42 self.assertEqual(200, result)
43 self.assertIn('msg', r.text)
44 self.assertTrue('南京' in r.text)
45
46 if __name__ == "__main__":
47 unittest.main()
小结
1、实际中的接口和这个也差不多,你可以增加没有这个城市的等等测试用例,可根据实际需要增加多个测试用例全面的断言。
2、实际开发或者测试工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。
展现效果如下:
那么安装了JsonView扩展程序后的展现效果如下:
很明显,后者的效果更好。实现步骤如下:
1、下载JsonView扩展程序压缩包
点击【Clone or download】——【Download Zip】
2、解压这个压缩包
3、打开谷歌浏览器的扩展程序界面
方式一:在谷歌浏览器地址栏中输入:chrome://extensions/
方式二:
4、加载JsonView扩展程序
选中开发者模式,点击【加载正在开发的扩展程序…】,选择插件目录(D:\JSONView-for-Chrome-master\WebContent)
点击确定后,就安装上了。安装后界面如下:
安装完成,重新加载 (Ctrl+R)。
做python自动化得时候怎么添加断言_python接口自动化(二十四)--unittest断言——中(详解)...相关推荐
- python接口自动化测试二十四:上传多个附件,参数化
python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...
- python 字符串替换_Python基础教程,第四讲,字符串详解
本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...
- python二维图颜色函数_Python绘图之二维图与三维图详解
各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...
- python unittest断言_python接口自动化(二十四)--unittest断言——中(详解)
简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京 ...
- python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解
python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...
- python自动化测试断言_python接口自动化(二十五)--unittest断言——下(详解)...
本文转载自: https://www.cnblogs.com/du-hong/p/10766314.html 简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门 没错最初的 ...
- python接口自动化(二十一)--unittest简介(详解)
简介 前边的随笔主要介绍的requests模块的有关知识个内容,接下来看一下python的单元测试框架unittest.熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 T ...
- python接口自动化(二十)--token登录(详解)
简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮.有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录.token 传参有两种一种是放在请 ...
- delphi接口带上请求头是什么意思_python接口自动化(二十)--token登录(详解)...
简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮.有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录.token 传参有两种一种是放在请 ...
- 学python开发必须要会wsgi么_python Web开发你要理解的WSGI uwsgi详解
WSGI协议 首先弄清下面几个概念: WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web ...
最新文章
- Android控件点击圆形阴影反馈解决方案
- Hello Blazor:(8)启用深色模式
- 大数据摄取:Flume,Kafka和NiFi
- AOS编排语言系列教程(三):创建子网Subnet
- “光伏发电改变生活” 在农村市场如何理解?
- asp.net MD5数据加密和解密
- 【易实战】Spring Cloud Greenwich Eureka:服务注册与发现
- centos----tftpd配置
- centos7安装kylo0.10.1
- Struts1 面试题目总结
- 周末做了一个区块链导航工具-Barfor导航
- 求助:ACM剑气算法
- mysql的填充因子_数据库索引中的填充因子
- 程序员猝死率高,我身体不好又想高薪,怎么办?
- 为什么毕业后五年,你们的贫富差距越拉越大
- 简单聊聊,我是如何零成本,推广海外游戏~
- AB-test理解与实战
- 4年小Java的心路历程,工作感悟
- linux dd 填充全ff,用shell命令tr dd生成内容为FF指定大小的命令。
- http://www.3800hk.com/news/w32/12446.html sa帐号的改名和删除