python-利用random模块生成测试数据封装方法总结
1.前言:
在测试中经常有需要用到参数化,我们可以用random模块,faker模块生成测试数据,也可以用到pymysql,此文主要针对random模块生成任意个数的随机整数,随机字符串,随机手机号,封装成了方法,个人做一个总结,方便以后使用。个人推荐用faker模块,生成数据及其方便,后续更新faker模块
2.基本使用:
#函数介绍:
#(0,1):random.random() --不要传参数,小数
#[a,b]:random.randint(a,b) --整数
#[a,b):random.randrange(a,b) --整数
#(a,b):random.uniform(a,b)
#单例集合随机选择1个:random.choice(item)
#单例集合随机选择n个:random.sample(item,n)
#洗牌单列集合:random.shuffle(item)
#基本举例
import random
print(random.uniform(0,20))
print(random.choice([11,3,-1,56,15,34]))
print(random.sample([11,3,-1,56,15,34],3))
3.实际应用:
3.1 生成任意个数的随机整数
import random
# 生成随机数字
def get_random_int(min,max,count):
'''
:param min: 随机数最小取值范围
:param max: 随机数最大取值范围
:param count: 生成的随机数个数
:return: 生成的随机数列表,个数即(count的值)
'''
random_int_list = []
for i in range(count):
random_int_list.append(random.randint(min,max))
return random_int_list
if __name__=="__main__":
print(get_random_int(10,110,3))
3.2生成任意个数任意长度的随机字符串(生成手机短信验证码可以用这个方法)
import random
# 生成随机字符串
def get_random_str(base_str,str_length,count):
'''
功能:以一列字符串的值作为基准,用他们的组合形成新的随机字符串
说明:外层循环控制生成随机字符串个数,里层循环控制生成的单个随机字符串的长度
:param base_str:基准字符串,后续生成的随机字符串待拼接的值取自于这个基准字符串
:param str_length: 生成单个随机字符串的长度
:param count: 生成随机字符串的个数
:return:
'''
random_str_list = []
for k in range(count):
str1 = ''
for j in range(str_length):
str1 = str1 +base_str[random.randint(0,len(base_str)-1)]
random_str_list.append(str1)
return random_str_list
if __name__=="__main__":
base_str = '2021加油!comeonliujingling'
print(get_random_str(base_str,4,3))
3.3生成任意个数随机手机号
import random
# 生成随机手机号码
def get_rondom_mobile(base_phonenum_zone,count):
'''
说明:
random.sample('0123456789',8)返回的是一个字符串列表
''.join(字符串列表) 作用是将字符传列表中所有的值拼接成一个字符串
功能:生成指定号段的随机手机号
:param base_phonenum_zone: 手机号码号码号段列表,值是字符串类型
:param count: 生成随机手机号个数
:return: 手机号列表,值是字符串类型
'''
phone_num_list = []
for j in range(count):
phone_zone = random.choice(base_phonenum_zone)
phone_end_8_num = ''.join(random.sample('0123456789',8))
phone_num = str(phone_zone) + phone_end_8_num
phone_num_list.append(phone_num)
return phone_num_list
if __name__=="__main__":
print(get_rondom_mobile(['131','132'],3))
python-利用random模块生成测试数据封装方法总结的更多相关文章
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- 利用random模块生成验证码
random模块 该模块用于数学或者数据相关的领域,使用方法非常简单下面介绍常用的放法 1.随机小数 random.random() 2.随机整数random.randint(1,5) # 大于等于1 ...
- Python 使用random模块生成随机数
需要先导入 random 模块,然后通过 random 静态对象调用该一些方法. random() 函数中常见的方法如下: # coding: utf-8 # Team : Quality Mana ...
- python的random模块生成随机数
python的random函数 random.random() 生成0-1之间的随机数 random.uniform(a,b)生成a,b之间的浮点数 random.randint(a,b)生成a,b之 ...
- python的random模块(生成验证码)
python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...
- 【转】python之random模块分析(一)
[转]python之random模块分析(一) random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): ...
- python时间序列按频率生成日期的方法
引用:https://www.zhangshengrong.com/p/281omE7rNw/ 有时候我们的数据是按某个频率收集的,比如每日.每月.每15分钟,那么我们怎么产生对应频率的索引呢?pan ...
- 你真的用好了Python的random模块吗?
random模块 用于生成伪随机数 源码位置: Lib/random.py(看看就好,千万别随便修改) 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结 ...
- python的random模块及加权随机算法的python实现
random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. ...
随机推荐
- 求n以内最大的k个素数以及它们的和
本题要求计算并输出不超过n的最大的k个素数以及它们的和. 输入格式: 输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值. 输出格式: 在一行中按下列格式输出: 素数1+素数2+-+素 ...
- 在字节,A/B 实验是这么做的!
主要为大家介绍了为什么要做 A/B 测试.火山引擎的 A/B 测试系统架构及字节跳动内部 A/B 测试的最佳实践. 为什么要做 A/B 测试 首先我们看一个案例. 字节跳动有一款中视频产品叫西瓜视频, ...
- spring拦截机制中Filter(过滤器)、interceptor(拦截器)和Aspect(切面)的使用及区别
Spring中的拦截机制,如果出现异常的话,异常的顺序是从里面到外面一步一步的进行处理,如果到了最外层都没有进行处理的话,就会由tomcat容器抛出异常. 1.过滤器:Filter :可以获得Http ...
- php的CI框架相关数据库操作
在使用之前首先应该配置数据库的参数,详见文件application/config/database.php,里面包含主机名,登陆用户名,登录密码,数据库名,编码信息等. 在配置成功后,可以简单的调用: ...
- linux中wc命令
目录 一:linux中wc命令 1.wc命令介绍 2.wc命令作用 3.wc命令格式 4.参数 5.解析案例 一:linux中wc命令 1.wc命令介绍 Linux wc命令用于计算字数. 利用wc指 ...
- python网络爬虫-解析网页(六)
解析网页 主要使用到3种方法提取网页中的数据,分别是正则表达式.beautifulsoup和lxml. 使用正则表达式解析网页 正则表达式是对字符串操作的逻辑公式 .代替任意字符 . *匹配前0个或多 ...
- 昔日埋雷不经意,今朝踩雷排查难:JetBrains系列IDE使用SFTP连接远程服务器报“EOF while reading packet”解决方法
写在前面 这是一篇问题解决记录.希望能帮到遇到同样问题的读者. 强烈建议:请您先看解决步骤一节,如果您发现在下的问题和您的问题不一样,就可以及时离开本文,避免浪费时间. 正文 问题描述 在使用GoLa ...
- FreeSWITCH 1.10.7 编译(debian 11)
1.安装预备库 apt install -y build-essential gdb gnupg2 wget autoconf lsb-release libtool libtool-bin libt ...
- react 高阶组件的实现
由于强大的mixin功能,在react组件开发过程中存在众多不理于组件维护的因素,所以react社区提出了新的方法来替换mixin,那就是高阶组件: 首先在工程中安装高阶组件所需的依赖: npm in ...
- 在Rainbond中实现数据库结构自动化升级
Rainbond 这款产品一直致力于打通企业应用交付的全流程,这个流程中不可或缺的一环是企业应用的不断升级.迭代.Rainbond 特有的能力,是可以将囊括多个服务组件的企业应用系统进行打包,并执行一 ...