pytest1重复测试 + 结果汇总
1、背景
同事问我一个问题:现在有某个抽奖接口,每次请求都会返回奖励的ID和数量,现在我想批量请求这个接口之后,把奖励的ID和数量汇总。主要运用场景就是针对于某个抽奖活动,累计抽多次后统计各个奖励的次数或者特殊奖励抽取到所需的次数或者概率问题,之前想着用postman或者jmeter来实现,但是感觉工具操作太繁琐,直接一个py脚本加结果展示就可以搞定。
2、分析
首先需要拿到这个接口返回的json结构,然后利用哈希表计数实现(leetcode哈希算法题里面很多类似的思路,py中对应的数据结构是dict,java用hashmap统计即可)
需要学习类似算法题的童鞋可以移步我的leetcode专栏(多思路 多语言书写)
3、实现
业务接口:http://xxxxxx/activity_v2/lottery/do_lottery
返回示例:
我们可以发现,返回的奖励在result里面,result是一个数组,数组里面每一个元素是dict,我们可以对其进行遍历处理,拿到reward_id(奖品的id)和reward_val(奖品的数量)
-
{
-
"code": 200,
-
"msg": "ok",
-
"result": [
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1010012,
-
"reward_val": 1,
-
"reward_name": "心动礼物卡x1",
-
"reward_level": 1,
-
"reward_message": {}
-
},
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1100145,
-
"reward_val": 1,
-
"reward_name": "KissYou礼物卡x1",
-
"reward_level": 1,
-
"reward_message": {}
-
},
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1100144,
-
"reward_val": 3,
-
"reward_name": "Mojito礼物卡x3",
-
"reward_level": 1,
-
"reward_message": {}
-
},
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1100101,
-
"reward_val": 6,
-
"reward_name": "情书礼物卡x6",
-
"reward_level": 1,
-
"reward_message": {}
-
},
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1100620,
-
"reward_val": 4,
-
"reward_name": "生日蛋糕礼物卡x4",
-
"reward_level": 1,
-
"reward_message": {}
-
},
-
{
-
"act_id": 0,
-
"reward_type": "prop",
-
"reward_id": 1200696,
-
"reward_val": 5,
-
"reward_name": "野菜礼物卡x5",
-
"reward_level": 1,
-
"reward_message": {}
-
}
-
]
-
}
脚本实现(附注释):
-
# 文件名tests.py
-
import pytest
-
import requests
-
-
-
# 全局变量,用来统计结果
-
total_count = {}
-
class Test:
-
# 装饰器,作用是重复执行
-
-
def test_001(self):
-
# 业务接口,这里保密处理
-
url = r'http://xxxxxx/activity_v2/lottery/do_lottery?act_id=658&uid=137218093&type=2&number=20'
-
# 获取返回体json
-
res = requests.post(url=url).json()
-
result = res['result']
-
# 统计计数
-
for reward in result:
-
if reward["reward_id"] in total_count:
-
total_count[reward["reward_id"]] = reward['reward_val']
-
else:
-
total_count[reward["reward_id"]] = reward['reward_val']
-
# 每次累计之后打印
-
print(total_count)
-
-
-
if __name__ == '__main__':
-
pytest.main(['-s', 'tests.py'])
结果:
每次抽奖之后我都做了一次统计,10次抽奖累计的奖品ID和数量就是第十行的结果
优化:
控制台不够直观,可以写入excel文件或者txt文件,不再赘述
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjagbk
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13