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. ...
随机推荐
- scanf报错问题
VS2013 scanf()函数报错问题. 编译器就是说这个环境下用scanf()函数不安全,建议使用scanf_s()函数.如何要使用scanf()函数的话,就需要在头文件或者源文件开头加上:use ...
- VirtualBox 安装 Ubuntu 20.04 全流程
VirtualBox 安装 Ubuntu 20.04 全流程 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 在虚拟机 ...
- 多线程的libcurl的使用
摘要:libcurl在多线程中,采用https访问,经常运行一段时间,会出现crash. libcurl的在多线程中的使用特别注意的有两点: 1. curl的句柄不能多线程共享. 2. ssl访问时, ...
- gin框架中的中间件
全局中间件 所有请求都经过此中间件 中间件中设置值 func MiddleWare() gin.HandlerFunc { return func(context *gin.Context) { t ...
- sed 模式空间 保持空间
sed之所以能以行为单位的编辑或修改文本,其原因在于它使用了两个空间:一个是活动的"模式空间(pattern space)",另一个是起辅助作用的"保持空间(hold s ...
- ant -design vue a-tree 树形控件
话不多说,先上代码. <a-tree v-if="this.treeData && this.treeData.length > 0" ref=&quo ...
- python使用制表符或者换行符来添加空白--3
#!/usr/bin/python #coding=utf-8 message="python" print(message) print("\tpython" ...
- 学习JAVAWEB第七天
## Bootstrap: 1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的 ...
- 学习Java第15天
今天所做的工作: 学习了HTML的基本标签,vs code的基本使用 明天工作安排: 继续学习html 目前所遇到的大都是HTML标签数量多,较复杂的问题,继续找规律记忆吧.
- CKKS Part2: CKKS的编码和解码
该文章翻译自CKKS EXPLAINED, PART 2: FULL ENCODING AND DECODING,主要介绍CKKS方案中是如何编码和解码的(如何将复数向量转成整数多项式,以及如何求逆运 ...