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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   新浪科技讯据报道,谷歌(105.22,-3.58,-3.29%)母公司Alphabet今日要求法庭驳回多家广告商最新提交的修改后的集体诉讼。  2021年,多家广告商对谷歌提起集体诉讼,指控谷歌滥用其在数字广告上的主导地位。后来,加州圣荷地方法院法官贝斯·拉布森·弗里曼(BethLabsonFreeman)驳回了该诉讼。  但同时,弗里曼也保留了原告再次提起诉讼的机会。弗里曼称,原告需要厘清他们认为谷歌独占了哪个市场;还需要进一步解释,为什么说谷歌拒绝支持竞争对手的广告系统是反竞争行为,因反垄断法并未规定垄断方协助竞争对手生存。  对于广告商提交的修改后的集体诉讼,Alphabet称,提起...
            0 0 960
            分享
          • 通常情况下面试会问到类似的问题,最主要的并不是要说出多么多的测试点,而应该展现的是你的思考方式。一般对于这类型的问题,会从以下几方面入手:功能、外观、性能、安全、兼容、易用性,当然也可能会有一些特殊的测试,因此要结合实际情况考虑。那么对于登陆界面的测试,也主要从以下方面入手:1、功能测试对于登陆界面,常用的功能有账户及密码输入框、注册链接、忘记密码链接、其他方式登陆等,那么我们就要逐一测试这些功能能否正常使用、链接能否正常跳转、提示是否正常等。输入正确的用户账户和密码,能够成功登陆并跳转至正确页面;输入错误的用户账户或密码,校验失败,提示错误信息;什么都不输入,直接点登陆,检查提示信息;检查注...
            0 0 1354
            分享
          •   实战案例  「Q:微博发动态,设计一下测试点」  虽说是发动态,但是测试时不能只是关注发动态这一操作的功能,发完动态之后,我们要确保动态要对外可见(对关注的人可见),单单测试发动态这个操作,实际上意义是不大的,毕竟只测发动态,不能实现测试闭环。  所以测试用例一定要把整个使用流程的case都要涉及到,避免漏测。  「Q:对一台自动售货机进行测试用例设计」  「Q:设计微信发红包测试用例」  「Q:设计抖音直播功能测试用例」  除了下图列举的一些测试点之外,还需要考虑 后台 的测试,譬如:审核后台、监控平台、数据中台 等等   「Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。」...
            1 0 5592
            分享
          •   长久以来测试都有一个困扰的问题,就是如果面试去了一家公司,发现项目组或整个部门就自己一个测试,该怎么办呢?很多大厂的娃可能会觉得这很夸张,我可以负责任的说,这是司空见惯的事,我之前就去过两家这样的公司,整个部门就我一个测试,所以我同时兼职两个项目的测试工程师,是不是天方夜谭?那么很多人遇到我这种情况肯定会不知所措,觉得一个人对接开发,对接产品,也没什么流程,不知道该做什么,更没有公司前辈的经验可借鉴,这种情况该怎么办?今天就花点时间来讨论一下。  为什么会有这样的现象?  首先我们来分析一下,为什么现在这么多公司都只有一个测试人员呢?我总结了两点主要原因:  第一:很多公司都是初创型的小微...
            0 0 1354
            分享
          • 1、软件测试的定义软件测试就是一系列活动,这些活动是为了评估一个程序或软件系统的特征或能力,并确定其是否达到了预期结果。2、测试和开发的关系软件测试和软件开发在整个软件开发生命周期中交互协作,自始至终在一起工作,共同致力于同一个目标。3、测试和质量保证的关系SQA是一项管理工作,侧重于对流程的评审和监控测试是一项技术性的工作,侧重对产品进行评估和验证4、软件缺陷的定义计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需要。5、 软件测试的分类5.1 按测试层次分类底层测试:单元测试(Unit Testing)接...
            13 13 3977
            分享
      • 51testing软件测试圈微信