关于python多线程,线程锁,线程池开发接口测试脚本真实实例,用于测试时间节约

场景:现在测试场景为,某个抢购场景,抢购时间只有10秒,测试人员需要5个拥有优惠券的账号,然后5个账号为业务关联的账号同时去抢购

过程:每个账号涉及调用一次购买接口,涉及一次SQL查询

首先我们先定义好函数:(注:由于是博主的真实测试业务场景,所以涉及马赛克非常抱歉)

定义数据库的函数不必多说:

 接口的函数定义也不必多说(博主涉及的业务 sign和paysign涉及到接口参数md5加密,有兴趣的也可以看看):

 好,接下来开始跑,如果是单线程的情况下:

 剩余三个 同理,一共合计5个用户

然后遇到问题,因为暂时后端没有做性能优化,用户调一次接口查一次SQL大概接近要3秒,所以5个用户需要14秒

 

然后抢购时间只有10秒,我们单线程跑(调接口+查SQL)需要14秒,很明显无法满足测试场景,所以用到多线程

 第一步 下载安装python用于多线程的库 threading

threading 模块中最核心的内容是 Thread 这个类。

我们要创建 Thread 对象,然后让它们运行,每个 Thread 对象代表一个线程,在每个线程中我们可以让程序处理不同的任务,这就是多线程编程。

然后定义执行多线程的函数
1.调用 start() 方法后,thread 会开始运行
2.join() 提供线程阻塞手段

3.Thread 的构造方法中,最重要的参数是 target,所以我们需要将一个 callable 对象赋值给它,线程才能正常运行。

 然后 分别将五个接口调用定义为target的对应的函数名称

 

 最后执行程序

可以看到 单线程需要的时间从接近15秒的测试时间 变为 多线程只需要3秒出头的测试时间,能够满足10秒抢购测试场景了

锁是为了线程安全,线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。
 

一般这种测试脚本或者爬虫只是为了提升时间,没有涉及到函数内申明为公共变量global同时数据变更的情况下,暂时不需要用到锁

下一期博主找个需要用到锁的真实场景大家一起学习讨论,下下期写线程池

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值