• 0
  • 0
分享
  • 好用又好玩的Python数据模拟库,不要错过——软件测试圈
  • 曼倩诙谐 2022-11-29 11:15:54 字数 1452 阅读 1509 收藏 0

  送你一套免费的性能测试框架搭建的课程!省下的300块,去吃一顿热气腾腾的火锅吧!点击下方链接,答问卷,领课程。链接:http://vote.51testing.com/


  一.背景

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

  二.问题引入

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

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

  三.功能介绍

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

1-1.png

  四.案例介绍

  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库,该如何模拟呢?

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

1-2.png

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

1-3.png

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

  对于某些互联网访问安全类项目,往往需要模拟用户互联网访问信息,从信息中判定用户是否有危险行为。比如:某公司的安全检测系统,需要从员工的互联网访问信息(包括:员工机器host_name,访问机器的源ip,访问网站url,访问网站ip等)监测员工是否访问危险网站或危险IP。那么,测试该系统,无法获取真实用户访问信息时,如何使用fake库模拟测试数据进行被测系统的业务测试呢?

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

1-4.png

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

1-5.png

  五.Q&A

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

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

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

  可以使用ext_word_list参数。例如:

1-6.png



作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/67/n-7793867.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、什么是静态测试?动态测试?通过运行程序测试软件:动态测试(有白盒和黑盒,从不同角度设计测试用例)通过评审文档、阅读代码:静态测试静态测试方法是指不运行被测程序本身,仅通过分析或检查源代码的语法、结构、接口等来检查程序的正确性。对照需求规格说明书,软件设计说明书,源程序做结构分析,流程图分析。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,如不匹配的参数,不合适的嵌套循环和分支嵌套,不允许的递归,未使用过的变量、空指针的引用和可疑的计算。用于进一步的差错,并为测试用例选取提供指导。二、什么是回归测试?目的是程序有修改的情况下,保证原有功能正常的一种测试策略和方法。测试人员在程序进行测试时...
            12 11 2819
            分享
          • 说到探索式软件测试(简称为ET,Exploratory Testing)或者探索性测试,很多的测试人员并不陌生。几年前,这个词在测试行业比较热门,而目前热门的应该算自动化测试了。   但自动化测试有一个致命的弱点,就是“预言家难题”-- 意思是如何才能知道被测试软件确实完成了它应该完成的任务,预言如何才能精准无任何差错。机器毕竟不是人,它只能按照固定的步骤来执行计算、判断,例如自动化运行中途出现:操作系统升级重启、机器断网、浏览器故障重启了、页面刷新较慢元素在该有的时间内没出现、HTTP丢包等任何一些不稳定现象,自动化的流程就很容易崩溃并最终需要人的介入。过度依赖自动...
            2 2 2671
            分享
          •   无论是要理解测试,还是做好软件测试,都要抓住这7个核心问题:  1. 测试选择标准与测试充分性 (终止原则)  测试选择标准是选择测试集或确定?个测试集是否满足指定目标的方法。测试充分性标准可以用来决定何时测试充分或者是否完成。  2. 测试有效性与测试目标  通过一系列程序的执行对测试的效率进行分析。对将要执行的测试用例的选择因其目标而异, 即测试集的效率评价基于具体想要实现的目标。  3. 以寻找缺陷为目标的测试  在以寻找缺陷为目标的测试活动中, 是否能够导致系统失效,这是测试是否成功的标准。这与测试软件是否满足设计规约或其它属性有很大的不同, 后者的成功取决于软件在现实的测试用例和...
            0 0 1051
            分享
          • 记录个人学习过程,期望能够坚持更新下去。fastapi是什么:用于构建 API 的现代、快速(高性能)的 web 框架如何安装:pip install fastapi如何使用:1、创建虚拟环境# 安装虚拟环境工具  pip instlall virtualenv # 创建名为fastapi_test的虚拟环境(名字想取什么就取什么) virtualenv fastapi_test # 进入虚拟环境 cd .\fast_test\Scripts # 执行activate2、安装fastapipip ...
            0 0 1090
            分享
          •   随着软件测试行业入门门槛低,薪资报酬高,不断地有转行的人群和刚毕业的大学生涌入到软件测试行业,看着一批批新鲜血液的加入,很多软件测试工程师都开始思考起自己的未来。找不到自己的发展方向,迷茫、无助,已经不止有一个朋友这么跟我提过了。  那么软件测试的职业发展方向有哪些?本篇就讲一下测试职业的转型及未来发展方向。  基本上测试的发展可以分为3类:  1、技术类  顾名思义就是专注于测试技术的方向,而测试将不仅仅停留在黑盒测试。更多的还要参与白盒测试和灰盒测试,因此必须有一定的计算机知识储备作为基础。由于门槛有比较高收入也会相对较高,也是未来测试发展方向之一。而纯做功能测试的人大多数将被渐渐淘汰...
            0 0 1249
            分享
      • 51testing软件测试圈微信