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. ...
随机推荐
- Sharding Sphere的分库分表
什么是 ShardingSphere? 1.一套开源的分布式数据库中间件解决方案 2.有三个产品:Sharding-JDBC 和 Sharding-Proxy 3.定位为关系型数据库中间件,合理在分布 ...
- 【Java】eclipse中的JUnit单元测试
eclipse中的JUnit单元测试 步骤: 选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步 创建Java类,进行单元测试. 此时的J ...
- IP第一次实验:静态综合
- 一文搞清楚 DNS 的来龙去脉
目录 美国霸权 ICANN:互联网界的联合国 IP 地址分配 域名解析架构 分层架构: DNS 缓存: 根 DNS 服务器: 顶级 DNS 服务器(TLD): 权威 DNS 服务器: 本地 DNS: ...
- k8s的应用包管理工具helm的部署和使用
1.概述 我们一般是在k8s里面部署一些简单的应用,比如用deployment,daemonset,statefuleset的方式来部署应用,但是如果要部署一些复杂的应用,那么整个配置的编写.部署的过 ...
- 《剑指offer》面试题07. 重建二叉树
问题描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍 ...
- 【记录一个问题】cv::cuda::BufferPool发生assert错误
cv::cuda::setBufferPoolUsage(true); const int width = 512; const int height = 848; const int channel ...
- MyCms 自媒体 CMS 系统 v2.6,SEO 优化升级
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现. MyCms 基于Apache2.0开源协议发布,免费且不限制商业使用,欢迎持续关注我们. V2.6 ...
- 写react项目需要注意的
key应该是稳定的,且唯一的,尽量不要用索引作为key 都知道React组件渲染列表时需要为每个列表元素分配一个在列表中独一无二的key,key可以在DOM中的某些元素被增加或删除视乎帮助React识 ...
- Java反射机制及原理
一.概念 java程序运行时动态的创建类并调用类的方法和属性 二.原理简介 Class<?> clz = Class.forName("java.util.ArrayList ...