pytest接⼝⾃动化测试

Version:0.9 StartHTML:0000000105 EndHTML:0000027381 StartFragment:0000000141 EndFragment:0000027341

分享学习第五节:pytest接⼝⾃动化测试
为什么要做接⼝测试?
只靠前端测试很难确保很⾼的覆盖率。接⼝测试,可以模拟出各种类型的⼊参,包括⼀些在前端
模拟不出来的⼊参,还能根据接⼝⽂档的定义,设计出相对完善的⼊参值,在接⼝层保证质量,
剩余的绝⼤多数问题就是应⽤程序⾃⾝的交互和数据展⽰问题。
接⼝测试相对于交互界⾯测试和功能测试来说,更容易实现⾃动化,执⾏起来⽐较稳定,维护成
本也⽐较低。
接⼝⾃动化适⽤于回归测试、线上接⼝巡检等,可以减少⼈⼯回归测试的⼈⼒成本、也可以监控
线上接⼝健康情况。
前、后端系统分离,从安全层⾯来说,只依赖前端进⾏不能满⾜安全要求,绕过前端相对容易,
所以需要后端同样进⾏输⼊校验,可以依赖接⼝测试去验证了。
⼀、接⼝测试流程
1. 如何测试接⼝ ?
a. 怎么测试接⼝?根据什么来测接⼝呢?这就需要开发提供的接⼝⽂档了,接⼝⽂档和功能测
试的需求说明书的功能是⼀样的。包括:接⼝说明、调⽤的url,请求⽅式(Get or Post or
RPC协议的框架,Doubbo接⼝协议),请求参数、参数类型、请求参数说明,返回结果说
明。有了接⼝⽂档后,我们就可以设计接⼝测试⽤例,⼀般接⼝测试的⽤例编写可以从以下⼏
个⽅⾯进⾏:
2. 接⼝⿊盒⽩盒的测试⽅法
接⼝通过性验证(最基本的)
传递正确的参数,是否返回正确的结果。
参数组合验证
因为参数有必传和⾮必传,
参数的类型和⻓度,
以及传递时可能业务上的⼀些限制,
测试参数的排列组合,保证所有的情况都能覆盖到,
接⼝的安全性&异常验证
例如绕过验证,⽐如提交订单时,在传递商品价格参数时,修改商品价格,看后端是否做
了校验,或者⽀付时,修改订单⾦额,如果能以改之后的⾦额⽀付,这个接⼝就是有问题
了。
绕过⾝份验证,就是某个功能只有特殊权限的⽤⼾才能操作,那我穿⼀个普通的⽤⼾,是
不是也能操作。 参数是否加密,这个关系到⼀些账号的安全,⽐如我们登录⼀些⽹站时,他要将我们的登
录信息进⾏加密。
密码安全规则,设置密码时复杂程度的校验。
订单幂等的校验,两个同⼀订单号的订单是否能提交⽀付
修改⽀付订单的⽀付状态
异常测试(try catch测试)
逻辑或、逻辑与的测试
接⼝参数边界测试0和负数 还有int最⼤值等等;
根据业务逻辑来设计⽤例
符合业务逻辑的意思是指,此接⼝包含了这个功能逻辑的所有应⽤场景;
与其他业务接⼝业务的组合,排除对其他业务的影响;
3. 测试分析
接⼝测试范围&优先级
独⽴接⼝测试分析
联调接⼝测试分析
接⼝测试框架分析
涉及到问题:
没有接⼝测试设计⽂档怎么办
接⼝设计⽂档⾮常粗糙怎么办
接⼝设计⽂档看不懂怎么办
4. 冒烟测试
⼯具选择,postman
如何使⽤⼯具进⾏冒烟测试,postman使⽤
冒烟测试标准制定
新的项⽬,冒烟测试标准制定不要过⾼
所有待测功能正常使⽤,流程都能通过
5. 接⼝测试脚本编写
常量参数
变量参数
循环处理测试数据
对接⼝请求回的结果做assert断⾔
通过⽂件提取测试数据
6. ⼯作总结 接⼝测试流程总结
接⼝测试技术总结
导⼊库⽂件
发送接⼝请求
输⼊常量查询条件
获取接⼝返回结果
预期输⼊与实际结果⽐对
接⼝测试⼯作总结
⼆、postman接⼝测试
1. 接⼝的概念
输⼊与输出的验证
输⼊ 输出
逻辑处理
2. 接⼝组成
https://svr-6-9008-api.share.51env.net/v1/article/view?id=1
协议 https
域名 svr-6-9008-api.share.51env.net
端⼝号
路径 /v1/article/view?
参数 id=1
3. 接⼝的要素
请求地址 url
请求⽅法 get/post/rpc/doubbo协议等等;
请求参数 id
响应 4. postman接⼝测试
接⼝⽤例测试
请求成功
断⾔/检查 响应结果断⾔
响应数据断⾔
响应时间
三、pytest框架
1. 接⼝测试python常⽤的俩个框架区别
unittest框架必须遵守需要遵守以下规则
测试⽂件必须先import unittest
测试类必须继承unittest.TestCase
测试⽅法必须以“test_”开头
测试类必须要⽤unittest.main()⽅法
pytest是python的第三⽅测试框架,是基于unittest的扩展框架,⽐unittest更简洁,更⾼
效。使⽤pytest必须遵守以下规则
测试⽂件名必须以“test_”开头,或者“test_”结尾
测试⽅法必须以“test_”开头
测试类命名必须以“Test”开头
2. pytest测试框架安装
3. pytest切换 4. 测试case编写
5. 接⼝⾃动化报告⽣成
⾸先安装allure: https://www.cnblogs.com/Durant0420/p/15867983.html 然后allure的使⽤
pytest --alluredir=report 执⾏测试⽂件中的⽤例
allure generate report --clean ⽣成测试报告,--clean覆盖之前的报告
6. 接⼝测试过程
导⼊库⽂件
发送接⼝请求
输⼊常量查询条件
获取接⼝返回结果
预期输⼊与实际结果⽐对
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是程序员_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值