• 11
  • 12
分享
  • ​Python基础篇:某宝一键秒杀,毫秒级的精准度——软件测试圈
  • 恬恬圈 2022-04-12 10:31:07 字数 1918 阅读 1117 收藏 12

前言

还记得前段时间情人节,各种产品活动秒杀。结果有对象的辣条自然少不了被对象一番折磨 (注意:不是new出来的哈,也不是橡胶的,实实在在的女朋友) 于是乎彻底激发了我的求生欲,在这种关头我是必须发挥出自己的才能了,这才有了这篇毫秒级秒杀的精品出来,话不多说直接进入主题

目录

  1. 项目环境

  2. 某宝抢购流程分析

  3. 程序实现思路

  4. 代码实践与梳理

项目环境

操作系统:Windows 10 

开发环境:python3.7

IDE:Pycharm

自动化模块:Selenium

安装命令:pip install selenium

浏览器版本:Google Chrome 99.0.4844.51

浏览器驱动版本:ChromeDriver 99.0.4844.51

浏览器驱动版本与浏览器版本要一致!

某宝抢购流程分析

  1. 登录网站

  2. 购物车选中抢购商品

  3. 结算购买

  4. 提交订单

关键:快速完成前面流程,当订单进入提交页面时,付款时间不影响抢购。

程序实现思路

购物流程都是固定没有变化的,因此可以把购物流程步骤用代码编辑好交给selenium去自动执行。

项目结构:驱动直接复制放入项目根路径

1.jpg

1、导入对应类库实现对浏览器的操作

# author:辣条
# ide: PyCharm
 
from selenium import webdriver
import datetime    
import time
 
#自动打开浏览器并且最大化窗口
driver = webdriver.Chrome()
driver.maximize_window()

执行上述代码,浏览器会自动打开并显示如下,证明我们已经开始通过代码操控浏览器了。

2.jpg

2、用代码实现购物流程

2.1 访问某宝:

driver.get('https://www.taobao.com')

2.2登录某宝:

3.jpg 

if driver.find_element_by_partial_link_text('亲,请登录'):
        driver.find_element_by_partial_link_text('亲,请登录').click()

2.3 进入购物车

#跳转到购物车页面
driver.get('https://cart.taobao.com/cart.htm')

2.4 选中所有商品

4.jpg

#寻找全选选项并勾选
if driver.find_element_by_id("J_SelectAll1"):
      driver.find_element_by_id("J_SelectAll1").click()

2.5 对比时间,提交结算(重点)

def buy(buy_time):  #buy_time 购买时间
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        print('当前时间:%s'%now)
 
        #判断是否到达抢购时间
        if now>buy_time:
            try:
                driver.find_element_by_partial_link_text('结 算').click()
            except:
                pass
              #对比时间,循环提交订单
        while True:
                try:
                    if driver.find_element_by_link_text('提交订单'):
                        driver.find_element_by_link_text('提交订单').click()
                        print(f"抢购成功,请尽快付款")
                except:
                    print(f"再次尝试提交订单")
            time.sleep(0.01)

5.png

这样就可以通过设定的段时间去定时定点抢购商品啦!

print(f"再次尝试提交订单")
        time.sleep(0.01)
[外链图片转存中...(img-oA7Q06eg-1648366756452)]
 
       **这样就可以通过设定的段时间去定时定点抢购商品啦!**


作者:五包辣条!

原文链接:https://blog.csdn.net/AI19970205/article/details/123774849

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   为什么会有“在浪费时间”的感受出现呢?  纯功能测试,重复且繁琐  纯粹的“点点点”的工作,没有太多的技术性,自然工作也没有太多的自主性。  其实很多刚进入测试行业的同学都有这种感受,特别是大部分进入的是中小型公司,企业本身对产品的要求就不高,保证基本功能能用就行,自然不会涉及到诸如性能、自动化、安全性的工作。  所以每天的工作就是重复点击页面,点击 APP 各个按钮,简单而机械的操作,重复繁琐且没有任何挑战!  长此以往,在公司里面,测试的工作价值也没有被体现出来,然后自己的自信和底气都被消磨殆尽了,可能会开始质疑自己,甚至质疑自己工作的意义,挫败感油然而生!  那么...
            0 0 399
            分享
          • 现在docker分布式部署的的方式是非常流行的,开发将新版本整体打包好之后丢给测试人员,测试人员便可以在测试环境部署新版本了,其实部署安装也是测试内容之一,这个步骤是完全模拟了运维人员在客户那边部署的操作,如果这个时候出什么问题,开发还可以进行解决或者兼容,下面就先罗列一下docker部署常用的命令:# 创建一个名为myubuntu的容器# -t:分配一个伪终端  -i:让容器的标准输入保持打开$ docker run --name=myubuntu -t -i ubuntu /bin...
            1 0 2437
            分享
          • 一、项目上线质量指标你认为用什么质量指标可以反映项目上线的一个质量?你可能会想那不是有很多质量指标么?多数和BUG相关,例如BUG数量、重新打开BUG数、BUG解决时长等等,好像都能体现上线质量啊。可仔细想想,我们衡量上线质量,不能只看这些,质量不应该简简单单的关联上BUG就可以了。二、研发过程质量既然不能只看结果,那我们就从源头开始看起。首先是需求质量,想要最终的上线质量高,那么源头的需求质量就不能太低,否则后续的研发工作做的再优秀,也不算好,很有可能一开始就跑偏了。我们需要在需求评审的阶段,从用户使用场景的角度出发,通过提问,把需求逐步澄清,并形成验收条件(可以用思维导图的形式记录下来),...
            0 0 2092
            分享
          • 一.什么是接口软件接口二.流程 接口测试属于专项需求–>计划–>用例设计–>执行–>报告接口文档–>用例设计–>执行用例(bug)–>专项报告没有接口文档,如何做接口测试?Fiddler三:接口文档接口名称:表明接口作用接口地址:URL HTTP/HTTPS请求方式:post/get请求参数:必填项,选填项的测试说明了选填参数的相应情况,那么也要设计用例进行覆盖性别:男/女 苏三返回格式:xml/json返回参数:预期结果,比对四.测试用例覆盖所有参数,正向用例覆盖所有必填参数,正向用例某一必填参数为空,逆向用例 空=空格? 空格的位置:前,后,中,n...
            0 0 995
            分享
          • 苹果6月4日的全球开发者大会上,我们看到iOS的改进之处在于增强了对增强现实的支持。一个全新的ARKit正在崭露头角,随着它的出现,一些令人印象深刻的应用程序和功能可以使混合现实不再仅仅是只一个新奇的玩意了,可以会有更多的应用。      我们还没有看到任何真正令人兴奋的AR,但重要的是要记住这个主题对苹果有多重要。首席执行官蒂姆库克一再表示,他认为AR是苹果长期未来最重要的发展之一。去年,他告诉Vogue,“我认为所有任何部门或行业都会受到AR的影响。” 我们现在还只是看到了渐进式的发展,但AR是构建软件背景的一部分,这将...
            0 0 1712
            分享
      • 51testing软件测试圈微信