• 0
  • 0
分享
  • JMeter+Faker让测试数据生成自动化——软件测试圈
  • 恬恬圈 2023-06-25 16:12:54 字数 1168 阅读 1725 收藏 0

  Faker主要用来生成开发测试过程中的的模拟真实数据。JMeter主要用于测试,在测试的过程中造数据是一个很头疼的问题。今天笔者就来介绍一下如何将Faker和JMeter进行组合来实现。模拟数据创建,通过Faker创建的模拟数据更加真实。

  1. 环境准备

  ·JMeter, 版本:5.4.3

  · javafaker,版本:1.0.2

  下载javafaker的jar包,然后把jar包放到JMeter的lib目录中。

1-1.jpg

  这里就已经准备好了。接下来就是启动JMeter服务。

  Tips: 由于javafaker还有依赖snakeyaml,所以这个jar包也需要引入。

  2. JMeter+Faker案例

  用一个简单的创建用户作为例子,首先创建用户需要的几个字段:名称、年龄、手机号码、电子邮件就用这几个字段。

  2.1 服务端接口编写

  在服务端编写一个简单的Spring Boot web项目的创建用户接口:

  public class User {
      private String name;
      private String age;
      private String mobile;
      private String email;
  //省略get set方法
  }
  @RestController
  @RequestMapping("/jmeter")
  public class JmeterController {
      @PostMapping("/user")
      public User getDistributedId(@RequestBody User user){
          return user;
      }
  }

  这个就是一个简单的后台服务。

  2.2 JMeter脚本编写

  创建线程组:

1-2.jpg

  添加BeanShell Sampler: 

1-3.jpg

  编写BeanShell Sampler的代码:

1-4.jpg

  2.3 增加 HTTP Reqeust

1-5.jpg

  2.4 运行

1-6.jpg

  每次运行生成的数据都不一样。

  通过编写代码的方式将faker和JMeter整合到一起,可以用于测试接口或者通过接口造数据。造出来的数据更加的真实。

  3. JMeter的BeanShell Sampler变量

1-7.jpg

  通过官网可以知道有以上的变量可以使用。上面的例子就用到vars变量,后续的组件可以获取到里面的值。

  4.总结

  JMeter+Faker的组合,在测试和造数据有这更加真实的可靠,同时生产的数据更加随机,比起手动和直接写生产数据的规则代码大大提高了效率。


作者:蚂蚁背大象    

来源:http://www.51testing.com/html/06/n-7033306.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在利用Jmeter工具进行性能或自动化测试工作之初,第一步面临的交易想必就是登录。你可以运用控制器录制登录交易的脚本,或是通过自行配置环境、上送正确的用户名和密码完成登录操作,但这就算完成登录交易了么?事实是在继续配置后续交易之后,当你重复执行脚本时会发现,只有登录本身成功了,后续交易却报错。  产生这样的原因往往是当利用Jmeter首次录制登录交易后,此时有一个叫做token的值便作为固定参数存储在脚本中,而后置交易需依赖这个“令牌”而被系统所识别,而再次登录时,可能会返回不同的token,致使后续交易使用未匹配的token发给服务器,导致交易失败。  为解决这个问题,不得不分析toke...
            13 12 2264
            分享
          •   单元测试是一个伟大的发明,同时也是一个操蛋的发明。只要团队碰它,几乎很难全身而退。  如果是我们自己写的代码,那么,写写单元测试也无伤大雅。但我们绝大多数人,都是跟在别人后面打扫狗屎,或者是留给别人一堆狗屎。这时候,单元测试写起来,就有一种不情不愿的味道。  没错,就是不想写!  为了应付所谓的指标,我们要给那些遗留代码,将要发臭的代码上一剂良药:那就是自动化。假如这些糟心的代码,大部分交给机器去写,我想很多人是非常乐意的。  squaretest  有很多这样的工具,比如IDEA自带的。但是它只能生成一些表面功夫的东西,也就是生成一个骨架而已。  说实话,并没有什么鸟用。根本就没减少我多...
            0 0 1010
            分享
          • 在目前的平台项目当中,数据新增或者修改已经是一个必备功能,数据相关的测试就需要关注数据的准确性,除此之外,一些电商搞活动的时候,经常能看到系统bug导致多次支付多次扣款的问题,被客户投诉,这些都指向同一个问题,截流问题,也是本文探讨的重点。1)什么情况下会出现数据重复提交的问题?用户操作系统新增数据,网页卡顿了,页面没有及时变更,没有返回成功的提示,此时又比较着急,这时候可能就会多次点击提交按钮;某些功能添加数据不是一步完成的,通常要分成好几步,用户操作完第一步进入第二步页面的时候,又返回了上一步,这种重复的前进和后退操作也有可能会产生重复数据;用户在提交数据的页面直接刷新,导致页面还是停留在...
            1 1 11750
            分享
          •   在当今快速发展的软件行业中,软件质量的保证已成为企业成功的关键因素之一。随着 DevOps 和持续集成/持续部署(CI/CD)实践的普及,自动化测试工具的重要性日益凸显。它们不仅提高了测试的效率和准确性,还帮助团队更快地响应市场变化,确保软件产品能够满足用户的需求和预期。  开源测试工具,作为技术创新和协作的结晶,为软件测试领域带来了革命性的变化。国内研发的开源测试工具,凭借其对本土化需求的深刻理解,以及对国际先进技术的快速跟进,正逐渐在国内外市场上崭露头角。这些工具不仅性能优异,而且具有高度的可定制性和灵活性,能够满足不同规模和类型的项目需求。  1、SoloPi  SoloPi 是由支...
            0 0 941
            分享
          • 我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现的咧?jmeter的正则表达式提取器1、把正则表达式添加到需要提取返回内容的http请求里,添加步骤是,,右键http请求--添加--后置处理器--正则表达式处理器2、在正则表达式提取器配置设置页里,要检查的响应字段:相当于是要提取哪个位置的内容数据引用名称:我们把内容提取出来后要赋值给一个变量,这个变量在jmeter里就是应用名称,注意这里不能出现数字和一些乱七八糟的特殊符号,建议使用英文正则表达式:代表这我们提...
            8 9 1528
            分享
      • 51testing软件测试圈微信