测试数据不会造?可以用这个工具

Posted 测试萌萌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试数据不会造?可以用这个工具相关的知识,希望对你有一定的参考价值。

在测试过程中,大家应该都遇到过各种各样的数据构造问题。e.g. 构造一批通讯录、构造一批用户三要素(姓名手机号身份证)、构造一批银行卡数据……

这时候,测试数据大多数可能是这样的:

张三, 130 0000 0001

李四, 130 0000 0002

王五, 130 0000 0003

……

或者就一顿乱敲,造出来一批。

你是不是这样做的呢?坦白的说,之前的小编就是酱紫。

这样的测试数据,不仅要自己手动敲,还假的不能再假,浪费时间、浪费人力、数据价值低……后来想了个办法,同步线上数据,但是还要加密解密,也要挨个库表去找自己想要的数据。

直到有一天,小编遇到了Faker,可以生成一批各种各样的看起来“像真的一样”的假数据。

Fake哪些数据?

PART 01

目前Faker库中提供了三大类可以“构造”出的数据,官方划分为: Standard Providers、Community Providers、Localized Providers。

Standard Providers

包含了通用信用卡、颜色、职业、日期时间等数据的生成方法。

Community Providers

由一些Community提供的,目前包括Web相关、云相关、WiFi、微服务、信用分数据。

Community Providers

根据地区/语言差异,本地化提供的一些方法,如简体中文下生成的姓名和繁体中文下生成的姓名是不一样的。

fake几条通讯录

for _ in range(3): print(‘姓名:’, fake.name(), ’ 手机号:’, fake.phone_number()) #fake 是由Faker创建的对象,且指定了中文

姓名:王霞 手机号:15744918509

姓名:李旭 手机号:18025187089

姓名:郭娟 手机号:13196551713

fake一组信用卡数据

print(‘Card Number:’, fake.credit_card_number(card_type=None))print(‘Card Provider’, fake.credit_card_provider(card_type=None))print(‘Card Security Code’, fake.credit_card_security_code(card_type=None))print(‘Card Expire’, fake.credit_card_expire())#fake 是由Faker创建的对象

Card Number: 2720041566219373

Card Provider: Mastercard

Card Security Code: 215

Card Expire: 07/20

可以用dir(fake),看Faker库都可以fake哪些数据,目前Faker支持近300种数据,此外还支持自己进行扩展。

怎样fake数据

PART 02

前面介绍了Faker可以fake的数据,下面小编带大家实际操作一遍。

第一步

安装Faker库

pip install Faker

第二步

用安装好的Faker库创建一个Faker对象

from faker import Fakerfake = Faker()

第三步

指定语言

fake = Faker(“zh_CN”)

第四步

fake数据

之后用fake对象就可以调用不同的方法生成各种数据了。

扩展Faker

PART 03

如果这些数据还不够生成数据使用,Faker还支持创建自定义的Provider生成数据。

from faker import Fakerfrom faker.providers import BaseProvider

# 创建自定义Providerclass CustomProvider(BaseProvider): def customize_ua(self): return 'test_Faker_customize_ua'

# 添加Providerfake = Faker()fake.add_provider(CustomProvider)print(fake.customize_ua())

test_Faker_customize_ua

是不是十分简单,方便扩展呢。以后常用的数据就可以自己创建Provider用自动化的方法生成了,不仅节省了时间,复用性也变高了。

写在最后

The Last

阅读Faker的源码可以很容易发现,Faker实际是维护了一个“数据库”,这个“数据库”强大在做了很多Localized的处理和兼容。此外,作为一个开源的库,Faker的源码是非常值得研究的,也是Python新手可以用来练开源项目的利器。

当然,缺点也就显而易见,它不是那么的智能,生成的数据是随机生成,数据量也不是那么大。

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习技术千万不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

以上是关于测试数据不会造?可以用这个工具的主要内容,如果未能解决你的问题,请参考以下文章

2023年十款开源测试开发工具推荐(自动化性能混沌测试造数据流量复制)...

2023年十款开源测试开发工具分享(自动化性能造数据流量复制)

Nginx这个功能厉害了!

不会代码?接口测试照样做!文末有福利~

软件工程第三周作业-功能测试

vs2003:快速片段工具