返回顶部
首页 > 资讯 > 后端开发 > Python >python性能测试对手机号绑定进行压测
  • 834
分享到

python性能测试对手机号绑定进行压测

2024-04-02 19:04:59 834人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录引言业务逻辑:基本的校验规则如下:解决方案:测试方案:压测脚本:模块类方法:引言 最近遭遇了绑定手机号相关的压测需求,有了手机号登录的经验和测试数据,这次算起来比较简单。最重要的

引言

最近遭遇了绑定手机号相关的压测需求,有了手机号登录的经验和测试数据,这次算起来比较简单。最重要的是难点就是要求开发配合调整配置已经在上一期文章:手机号验证码登录性能测试中问题解决了,绑定手机号唯一的难点就是如何在单账号绑定的过程中不断切换手机号,而且保证最后账号的绑定手机号还是一开始的14+uid的模式。

业务逻辑:

请求发送验证码接口,发送成功(未绑定的手机号,用户登录状态)可以获取到登录的一个参数traceNo

使用用户登录校验令牌、traceNo、短信验证码、手机号请求绑定手机号接口

基本的校验规则如下:

手机号校验,排除一些不存在的号段,11位数字类型(接口传string类型)

间隔(60s)内不允许发第二条短信,短信有效期同隔间

自然天不允许发10条以上的短信

验证码随机和traceNo必需从发送验证码接口获得

解决方案:

限制条件已经做成可配置,可以随时更改重启服务即可

选中14号段,用户手机号=14+uid

测试环境固定验证码

uid是9开头的,所以单个用户的绑定手机号在149148之间切换,149为初始状态,这里并没有使用每次换一个新手机号,第一是怕出现偶然重复,第二是数据维护不容易

测试方案:

将发送验证码和绑定手机号两个接口放在一起压测,需要准备一批测试用户

单个线程绑定一个用户,然后不停地发送验证码和绑定新手机号

增加基类属性phone和模块类属性lastTraceNo来完成参数传递

压测脚本:

threadmark用来标记任务的,我在模块方法里面返回了traceNo,表示唯一用户登录接口请求操作,方便开发追踪日志


class BindPhone extends OkayBase {
    public static void main(String[] args) {
        def argsUtil = new ArgsUtil(args)
        def thread = argsUtil.getIntOrdefault(0, 100)
        def times = argsUtil.getIntOrdefault(1, 50)
        ClientManage.init(10000, 5000, 0)
        def threads = []
        thread.times {
            def base = getBase(it)
            def info = new UserInfo(base)
            threads << new Bind(info, times)
        }
        new Concurrent(threads, "学生留存1.2.3绑定手机号").start()
        thread.times {
            def base = getBase(it)
            def info = new UserInfo(base)
            info.bindPhoneInit()
        }
        FanLibrary.testOver()
    }
    static class Bind extends ThreadLimitTimesCount<UserInfo> {
        public LoginTel(UserInfo info, int times) {
            super(info, times, null)
        }
        @Override
        protected void doing() throws Exception {
            threadmark = t.bindPhone()
        }
    }
}

模块类方法:

    
    public JSONObject getUserInfo() {
        String url = UserInfoapi.USERINFO;
        jsONObject params = getParams();
        JSONObject response = getPostResponse(url, params);
        output(response);
        return response;
    }
    
    public JSONObject bindPhone(String phone) {
        sendCodeOnline(phone);
        String url = UserInfoApi.BIND_PHONE;
        JSONObject params = getParams();
        params.put("phone", phone);
        params.put("traceno", lastTraceNo);
        params.put("code", Common.TEL_CODE);
        JSONObject response = getPostResponse(url, params);
        output(response);
        return response;
    }
    
    public String bindPhone() {
        phone = phone.startsWith("149") ? 148 + phone.substring(3) : 149 + phone.substring(3);
        bindPhone(phone);
        return lastTraceNo;
    }
    
    public JSONObject bindPhoneInit() {
        JSONObject userInfo = getUserInfo();
        String tel = userInfo.getJSONObject("data").getString("tel");
        if (tel.startsWith("149")) return null;
        phone = 149 + phone.substring(3);
        sendCodeOnline(phone);
        String url = UserInfoApi.BIND_PHONE;
        JSONObject params = getParams();
        params.put("phone", phone);
        params.put("traceno", lastTraceNo);
        params.put("code", Common.TEL_CODE);
        JSONObject response = getPostResponse(url, params);
        output(response);
        return response;
    }
    
    public JSONObject sendCodeOnline(String phone) {
        String url = UserInfoApi.SEND_CODE_ONLINE;
        JSONObject params = getParams();
        params.put("scene_type", 1);//1绑定手机
        params.put("phone", phone);
        output(phone);
        JSONObject response = getPostResponse(url, params);
        output(response);
        if (isRight(response)) {
            lastTraceNo = response.getJSONObject("data").getString("traceno");
        }
        return response;
    }

以上就是python性能测试对手机号绑定进行压测的详细内容,更多关于Python手机号绑定性能测试的资料请关注编程网其它相关文章!

--结束END--

本文标题: python性能测试对手机号绑定进行压测

本文链接: https://lsjlt.com/news/119527.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python性能测试对手机号绑定进行压测
    目录引言业务逻辑:基本的校验规则如下:解决方案:测试方案:压测脚本:模块类方法:引言 最近遭遇了绑定手机号相关的压测需求,有了手机号登录的经验和测试数据,这次算起来比较简单。最重要的...
    99+
    2024-04-02
  • python性能测试手机号验证码登录压测示例详解
    目录引言业务逻辑:基本的校验规则如下:解决方案:测试方案:压测脚本:模块类方法:引言 这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这...
    99+
    2024-04-02
  • python接口测试对修改密码接口进行压测
    目录引言测试脚本代码usercenter主要代码okaybase主要代码引言 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较...
    99+
    2024-04-02
  • sysbench对数据库进行压力测试
    sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。安装方式:https://github.com/akopytov/sysbench/blob/master/REA...
    99+
    2024-04-02
  • 怎么对Linux系统进行压力测试
    这篇文章将为大家详细讲解有关怎么对Linux系统进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、...
    99+
    2023-06-15
  • C++用函数对算法性能进行测试
    目录前言工具模板说明测试前言 “Algorithm+Data Structures=Programs”——瑞士计算机科学家尼古拉斯&m...
    99+
    2022-11-13
    C++性能测试 C++算法性能测试
  • 如何对Android系统手机进行单元测试
    如何进行Android单元测试    外面加入:   MISSION android:name="android.permission.RUN_INSTR...
    99+
    2022-06-06
    单元 单元测试 手机 测试 Android
  • 如何对 C++ 函数性能进行基准测试?
    为 c++++ 函数进行基准测试,可采取以下步骤:使用计时工具(如 std::chrono 库)测量执行时间。编写基准测试函数以执行代码并返回执行时间。利用基准测试库获取高级功能,如统计...
    99+
    2024-04-19
    性能基准测试 git c++
  • 使用traceview进行Android性能测试
      一、 TraceView工具简述   Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形界面的方式让我们了解我们要跟踪的程序的性能,并...
    99+
    2022-06-06
    测试 Android
  • JMeter如何对MySQL数据库进行压力测试
    这篇文章将为大家详细讲解有关JMeter如何对MySQL数据库进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装并配置 JMeter下载官网下载,下载二进制的这个 zip配置环境变量然后解...
    99+
    2023-06-28
  • 如何使用tpcc-mysql对mysql进行TPCC性能测试
    这篇文章主要介绍如何使用tpcc-mysql对mysql进行TPCC性能测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! tpcc-mysq是满足TPC...
    99+
    2024-04-02
  • go通过benchmark对代码进行性能测试详解
    目录benchmark的使用运行Benchmark指定测试时长或测试次数重置时间和暂停计时查看内存使用情况testing.B的底层实现总结benchmark的使用 在开发中我们要想编...
    99+
    2023-05-17
    go-benchmark代码性能测试 go benchmark
  • 使用Apache ab进行http性能测试
    Mac自带了Apache环境 打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本 接着输入 sudo apachectl start,这样A...
    99+
    2022-06-04
    Apache ab http 性能测试
  • 如何使用Gateling进行性能测试
    这篇文章主要讲解了“如何使用Gateling进行性能测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Gateling进行性能测试”吧!Gatling是什么?Gatling 是一个用...
    99+
    2023-06-02
  • 如何进行H5前端性能测试
    如何进行H5前端性能测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。说到H5测试,对于做WEB测试的同学来说再熟悉不过了,它包括页H5功能测试,前端性能测试,...
    99+
    2023-06-05
  • APP压力稳定性测试中如何进行Monkey入门实战
    APP压力稳定性测试中如何进行Monkey入门实战,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Monkey测试简介在android手机上做自动化测试,monkey比cts...
    99+
    2023-06-05
  • 如何进行CentOS 6与CentOS 7的性能测试对比
    这篇文章主要为大家分析了如何进行CentOS 6与CentOS 7的性能测试对比的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何进行CentOS 6与Ce...
    99+
    2023-06-28
  • 如何在Python中进行代码性能优化和性能测试
    如何在Python中进行代码性能优化和性能测试引言:当我们编写代码时,经常会面临代码执行速度慢的问题。对于一个复杂的程序来说,效率的提升可以带来明显的性能提升。本文将介绍如何在Python中进行代码性能优化和性能测试,并给出具体的代码示例。...
    99+
    2023-10-22
    性能 (Performance) 优化 (Optimize) 测试 (Test)
  • Linux服务器怎么进行性能测试
    今天小编给大家分享一下Linux服务器怎么进行性能测试的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、Install sy...
    99+
    2023-06-28
  • 如何进行C++代码的性能测试?
    如何进行C++代码的性能测试概述:在软件开发过程中,性能测试是一项非常重要的任务。对于C++代码来说,性能测试可以帮助开发人员了解代码的执行效率,找到性能瓶颈,并对其进行优化。本文将介绍一些常用的C++代码性能测试方法和工具,帮助开发人员提...
    99+
    2023-11-02
    测试 性能测试 C++代码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作