51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 860|回复: 0
打印 上一主题 下一主题

[原创] 浅谈Python数据模拟库

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-18 16:06:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 草帽路飞UU 于 2022-11-18 16:09 编辑

一.背景



  对于大数据相关项目的测试,往往需要大量的测试数据,而场内测试时很难获取那么大批量的真实数据,这个时候需要测试人员能够快速模拟出符合要求的测试数据。这个时候要是有一个自动化工具或测

试脚本简直不要太爽~

  二.问题引入

  对于互联网大数据测试,当需要快速模拟以万为单位的用户数据(包括用户名、ip地址、主机名、访问url等)时,有什么方法可以推荐吗?

  这个时候你一定要试试python的fake库,简单方便,用了的都说好!

  三.功能介绍

  fake库可以模拟哪些信息?模拟信息主要包括:人物、地址、公司信息、文件信息、互联网信息等,官方地址详见:https://faker.readthedocs.io/en/master/#



四.案例介绍

  1.接口测试——模拟接口传入参数


  接口测试是几乎是每个测试人员测试生涯中的必经之路。对于接口测试,往往我们需要根据定义传入相应的参数值验证接口返回的正确性。例如:某个接口需要传入int型变量,上下限分别是0、100。写

接口自动化测试的时候我们往往是使用等价类和边界值测试法选择几个测试数据,例如:0、100、-1、101、50进行测试,但毕竟测试数据覆盖不够全面。

  对于这类需要丰富测试数据的需求,我们可以使用fake的python数据功能,随机生成int数(fake.pyint())、生成float数(fake.pyfloat(left_digits=None, right_digits=None, positive=False))等。


  2.业务测试——大数据用户信息模拟


  对于某些项目,需要模拟用户信息进行业务测试(例如:核酸监测系统,并发测试大量用户的信息采集)。假如我们需要生成一万个用户,包括:用户名、联系电话、电子邮箱、出生年月日、所在城市

公司和身份证号码等信息。使用fake库,该如何模拟呢?

  数据简单代码示例如下图所示:



运行结果,模拟用户如下图所示:



3.安全测试——互联网访问信息模拟

  对于某些互联网访问安全类项目,往往需要模拟用户互联网访问信息,从信息中判定用户是否有危险行为。比如:某公司的安全检测系统,需要从员工的互联网访问信息(包括:员工机器host_name,访

问机器的源ip,访问网站url,访问网站ip等)监测员工是否访问危险网站或危险IP。那么,测试该系统,无法获取真实用户访问信息时,如何使用fake库模拟测试数据进行被测系统的业务测试呢?

  数据模拟简单代码示例如下图所示:





运行结果,模拟用户互联网信息如下图所示:



五.Q&A

  为何上述样例中生成的用户名、地址等信息是中文,如何产生英文信息?

  模拟中文信息,在初始化fake库时,使用Faker(locale='zh_CN')即可,默认Faker()初始化时,产生的用户信息时英文。当然,我们还可以使用其他语言(比如日文)产生相应信息,初始化时使用


Faker(local=’ja_JP’);

  如何自定义产生一些自己定制化的信息,比如使用自定义的单词生成文本?


  可以使用ext_word_list参数。例如:












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 20:15 , Processed in 0.065755 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表