通过Postman请求结果如下图:


那我们怎么用pytest进行测试呢?

在接口测试,我们要用到requests包,实现代码如下:

import pytest
import allure
import requestsclass TestSimple(object):def TestWatcher(self):url = "http://wthrcdn.etouch.cn/weather_mini?city=成都"r = requests.get(url)assert r.status_code == 200d = r.json()print(d)

简述:上面通过request实现了天气的查询,对其请求状态做了验证(如果HTTP状态码为200则认为测试通过),并对接口请求结果进行了打印。

执行上面代码时遇到问题:No tests were found


结果问题查询:pytest 启动文件名是以test开头,函数名是以test开头。所以我们把上面的函数名改下,把TestWacher改为testWacher再去执行,效果如下:


相比于状态码,我们可能更喜欢进行关键字校验,如 查询结果中没有wendu字段,则视为用例失败怎么实现?

此时可以使用pytest的xfail标记用例预期失败,如果用例运行成功则显示Xpassed,失败则显示xfailed。xfail标记并不会影响用例的运行。
添加代码如下:

if ('wendu' not in d['data'].keys()):pytest.xfail('返回结果不正确,wendu=NULL')

假设我们要检查的字段是 wendi,而结果中没有该字段,此时执行效果如下:


如果我们在执行时,如何让报告显得更漂亮呢?这时我们可以进行美化,最终代码如下:

@allure.feature("测试Dome")
class TestSimple(object):@allure.story("天气查询")@allure.description('一个免费的天气查询接口测试')@allure.severity('critical')def testWatcher(self):url = "http://wthrcdn.etouch.cn/weather_mini?city=成都"with allure.step("查询天气"):r = requests.get(url)assert r.status_code == 200d = r.json()print(d)if ('wendu' not in d['data'].keys()):pytest.xfail('返回结果不正确,wendu=NULL')

常见allure报告美化总结:

@allure.feature(“测试用例特性场景(主要功能模块)”)
@allure.story(“feature功能模块下的分支功能(用例名称)”)
@allure.description(“这里是用例的描述信息”)
@allure.severity(“测试用例等级”)
说明:allure对用例的等级划分成五个等级

  • blocker – 阻塞缺陷(功能未实现,无法下一步)
  • critical – 严重缺陷(功能点缺失)
  • normal – 一般缺陷(边界情况,格式错误)
  • minor – 次要缺陷(界面错误与ui需求不符)
  • trivial – 轻微缺陷(必需项无提示,或者提示不规范)

allure.description_html(html代码) #提供一些HTML在测试用例的描述部分
@allure.step(“用例步骤说明”)
使用方法:
①@allure.step() 只能以装饰器的形式放在类或者方法上面;
②with allure.step(): 可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含;
allure.attach(body, name, attachment_type, extension)
用于向测试报告中输入一些附加的信息,通常是一些测试数据信息,参数说明:

  • body - 要写入文件的原始内容
  • name - 包含文件名的字符串
  • attachment_type - 其中一个allure.attachment_type值,可以是文本、图片、HTML等
  • extension - 提供的将用作创建文件的扩展名

@allure.link(“URL=链接地址”)
@allure.issue(“URL=问题链接”)
@allure.testcase(“URL=用例链接”)

最后执行用例,并生成allure报告:


点击特性场景,进入详情,结果如下:


上面就实现了一个简单的pytest接口测试例子,但怎么参数化,怎么让代码层次更清晰,要不要这么low b?请关注小编后续文章。


另外,欢迎加入软件测试技术交流群 313782132 ~进群可领取免费软件测试资料以及群内测试大牛解惑!

测试工程师职业发展路线图

功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。

资源不错就给个推荐吧~

pytest接口测试轻松入门相关推荐

  1. 想轻松入门Python编程,这10个经典案例你还不知道嘛?

    一直以来,Python都是一门很简单的编程语言,其实无论你有没有基础,学起来都不难. 但,必须有方法,而最好的方法其实就是学+练,即:基本常识+这10经典案例. 而同时有着系统的Python基础知识点 ...

  2. python从入门到项目实战李兴华网盘_贺胜军Python轻松入门到项目实战【经典完整版】...

    贺胜军Python轻松入门到项目实战课程目录 01_Python基本概述 01_计算机组成_操作系统.avi 02_计算机的进制.avi 03_数据存储单位1.avi 04_编码和解码.avi 05_ ...

  3. 统一建模语言UML轻松入门系列

    第五讲:统一建模语言UML轻松入门之综合实例 第四讲:统一建模语言UML轻松入门之动态建模 第三讲:统一建模语言UML轻松入门之静态建模:类和对象 第二讲:统一建模语言UML轻松入门之静态建模:用例 ...

  4. Golang并发模型:轻松入门协程池

    goroutine是非常轻量的,不会暂用太多资源,基本上有多少任务,我们可以开多少goroutine去处理.但有时候,我们还是想控制一下. 比如,我们有A.B两类工作,不想把太多资源花费在B类务上,而 ...

  5. OpenGL编程轻松入门(一)

    OpenGL编程轻松入门(一) (由同事黄燕创作)   本文介绍了有关OpenGL的基本知识,主要涉及颜色.绘制几何体.坐标变换.堆栈操作.显示列表.光照和材质.纹理映射.特殊效果.曲面和曲线的绘制. ...

  6. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

  7. 统一建模语言UML轻松入门(3)――静态建模:类和对象

    统一建模语言UML轻松入门(3)――静态建模:类和对象 --------------------------------------------------------------------- 宋宝 ...

  8. 日语输入法电脑版_日语轻松入门小百科

    如果你一直以来都对日语抱有强烈的兴趣,那么就赶紧跟我一起轻松入门吧~ 科普之一:日语五十音图 什么是假名?什么是五十音图? 日语的字母叫做假名,每个假名代表一个音节.假名有两种书写方式,即平假名和片假 ...

  9. 公钥,私钥和数字签名这样理解轻松入门!

    公钥,私钥和数字签名这样理解轻松入门! 参考博文:https://blog.csdn.net/21aspnet/article/details/7249401 (公钥和私钥是成对出现的,可以把他们看成 ...

最新文章

  1. 数组-移除元素(交换移除)
  2. 皮一皮:有钱人的世界咱不懂...
  3. mysql主备在同一台_MySQL高可用(一)主备同步:MySQL是如何保证主备一致的
  4. [html] 浏览器是怎么对HTML5的离线储存资源进行管理和加载的
  5. c3p0配置及其说明
  6. 嵌入式Linux系统编程学习之二十三 System V 共享内存机制
  7. 从Slice_Header学习H.264--相关细节之 POC的计算
  8. 案例分享|某医药集团的BI建设案例
  9. linux查看usb文件,linux下查看usb个数
  10. java数组子类型_在vhdl中获取数组子类型的范围属性
  11. mockito简单教程
  12. 用matlab建立晶体模型,一种建立多晶体几何模型的方法与流程
  13. Spring 框架学习—控制反转(IOC)
  14. Websocket测试工具
  15. Mac Mini - 一个深坑
  16. 编程训练4-统计单词平均长度
  17. 冰镇西瓜文案:冰镇西瓜水果文案大全集,水果类冰镇西瓜推销文案
  18. 微信浏览器 rem 不适配的解决方案
  19. 知领·报告 | 车路协同技术发展态势分析报告.md
  20. MATLAB delaunay函数使用

热门文章

  1. 本地HTML文件 带参数方案
  2. cpu win10 安装yolo_yolov5 win10 数据集制作 各种踩坑
  3. UDAF和UDF的介绍
  4. java gdal_gdal java环境配置
  5. VUE中$refs和$el的使用
  6. 机器学习—线性回归—正规方程(原理及代码实现)
  7. 我的Hadoop安装流程
  8. 可微硬件:AI将如何重振摩尔定律的良性循环
  9. Eclipse,JKD,JRE
  10. 在 Win10 系统下安装 JDK 及配置环境变量的方法