Java Bullshifier –生成大量随机代码库
生成大量随机Java应用程序的命令行工具
您一直在等待的命令行工具。 或不。 毕竟,这是很深奥的。 无论哪种方式,它对某些人都非常有用,而对其他人来说却是一个有趣的实用程序。 Bullshifier是由David Levanon和Hodaya Gamliel开发的内部OverOps工具。 它用于在可笑的大型代码库上测试我们的某些监视功能,其中事务进行了数千次调用,上千个类,并且最终会产生异常。
让我们深入研究如何使用它以及为什么要构建它。
一些动机
OverOps向开发人员展示了代码在何时何地中断生产的原因。 只要有记录的错误,警告或异常发生,它就会向您显示错误发生时整个调用堆栈的完整源代码和变量状态。
它是为生产而构建的,并且所需的开销很低,就CPU和内存而言,永远不会超过3%。 因此,作为我们流程的一部分,我们需要在一些极端情况下进行测试-这就是Bullshifier的用处:
- 生成大量的代码和日志记录的大型项目
- 在具有深度调用堆栈的方法之间运行
- 引发由随机变量状态引起的异常
基本用法
要求
- 安装Groovy
- 已安装Java
安装
- 下载,解压缩,就可以开始了
运行设置
- ./gradlew运行(默认参数,生成一个包含10个类的jar)
- cd输出&& gradle fatJar构建生成的项目
- java -cp output / build / libs / tester.jar helpers.Main运行它
或者,您可以简单地使用预先配置的运行设置运行./scripts/small.sh或./scripts/big.sh 。
标志
- -Poutput-directory (输出目录的相对路径)
- -Poutput-classes (要生成的类数)
- -Psubprojects (要生成的罐数)
请记住,生成500多个类将花费相当长的时间。 我们最大的比赛有20,000课,但最好不要超过5,000。
运行子项目
- / gradle构建 (获取WAR文件)
- 前往垃圾桶
- 每个项目都会创建一个shell脚本,root将全部运行它们
进阶设定
还有一些其他选项可以使您对生成的代码进行精细控制,但可能会使其混乱,使用后果自负:
- 低级配置: src / main / groovy / generator / Config.groovy
- 更高级别的配置在输出文件夹中可用。 还有更多选项可以添加日志记录,并微调应用程序的行为,但目前尚处于试验阶段。
如果您想了解更多信息,请随时与我们联系,或在评论部分询问我们更深入的演练。 默认设置是没有日志,并且在调用堆栈中每第10帧都有一个例外。
样品输出
有趣的是,一开始,所有那些随机生成的类和变量名都引起了很多保留字的点击。 尽管它们是完全随机的,但由于生成的代码量巨大。 所以现在是随机减保留字��
每个生成的方法包含4个部分:
- 变量定义,具有随机类型,随机名称和值。
- 根据事件发生率的配置设置,抛出异常的部分或打印到日志的部分。 它还包括“自杀”功能,该功能可停止程序的执行。
- 调用下一个模式。
- 无法运行的代码。
这是第一部分中的一个随机代码段:
int methodId = 2;
Object[] root = new Object[9];
List<Object> valCjrukeawxor = new LinkedList<Object>();
Set<Object> valRvshucjormy = new HashSet<Object>();
boolean valSboiogeldpb = true;valRvshucjormy.add(valSboiogeldpb);
boolean valPjvoucyfprv = true;
访问该站点以下载示例结果或在GitHub上查看 。
翻译自: https://www.javacodegeeks.com/2016/11/java-bullshifier-generate-massive-random-code-bases.html
Java Bullshifier –生成大量随机代码库相关推荐
- 随机数生成java代码_Java Bullshifier –生成大量随机代码库
随机数生成java代码 生成大量随机Java应用程序的命令行工具 您一直在等待的命令行工具. 或不. 毕竟,这是很深奥的. 无论哪种方式,它对某些人都非常有用,而对其他人来说却是一个有趣的实用程序. ...
- Java后台生成图表——主代码(折线图,饼状图,柱状图,-》并产出图片PDF或其他格式的图片内容)
声明: 本文采用的数据均来源于网络,本人只用于学习记录,若有侵权,还望能及时联系. Maven 的 POM 依赖 <!--必要--><!--用于jfreechart生成图片 --&g ...
- 告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
一.背景 很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布. 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试. 但是编写单元测试又比较浪 ...
- java实现生成纯色图片代码实例
//生成黑色底图 public static void pureColorPictures(String width,String height ) {//width 生成图宽度// height 生 ...
- 又一巨头从Java迁移到Kotlin:关键应用全部开始切换、安卓代码库超过千万行Kotlin代码
Meta 现在爱 Kotlin 多于 Java. Facebook 母公司 Meta 正在将其 Android 应用的 Java 代码迁移到 Kotlin.根据 Meta 的官方博客所述,截至今天,其 ...
- java 邮箱地址生成器_关于java:生成随机电子邮件
你能帮帮我吗??如何使用JAVA使用硒生成随机电子邮件?? 我在StackOverflow中查看这里,但还没有找到答案.我试过了,但没用 电子邮件地址还是真盒子? 如果你只想发电子邮件,就不需要硒了. ...
- java 学习代码库_java 学习4
[java]代码库多态:统一行为 多种形式 * 1.继承或者实现 * 2.放法的重写 * 3.父类引用指向对象: 对父类进行声明,指向子类的对象(方法) * * 多态的作用:提高代码的维护性 和扩展性 ...
- 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...
TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...
- java代码雨_代码雨 - java代码库 - 云代码
[java]代码库import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ...
最新文章
- fmod实现声音波形_“老张说数理化”—中考物理专题02-声音与环境(收藏可打印)...
- iMeta | 中科院李小方等膳食甘草促进小鼠镉解毒并调节肠道菌群代谢
- @ConfigurationProperties和@Value 注入
- html5 list css,使用HTML5的classList属性操做CSS类
- (转)编译Android源码的全过程
- 16岁上大学,25岁博士毕业,她还是南大医学院最年轻的博导!
- sql如何遍历几百万的表_SQL Server遍历表中记录的2种方法(使用表变量和游标)
- RotateCard(自定义旋转view)
- vos3000防火墙规则
- php 爬虫框架QueryList
- Bootstrap 弹出框modal 垂直居中(适用各种分辨率窗口)
- python- 机器人抓取谷歌地图数据
- 利用pyecharts实现中国省与市之间的跳转
- 看板娘全是php的怎么办,【教程】给网站添加互动二次元看板娘老婆
- MYSQL笔试题(考试题)附带答案
- 头插法建立单链表 c
- 10月25日 c语言 打印所有水仙花数
- oracle中trim函数的用法
- 阅读文献“Language Models are Unsupervised Multitask Learner”(GPT-2)
- 小程序——切割字符串
热门文章
- 人人都能掌握的Java服务端性能优化方案
- 如何设计一个安全的登录流程
- [编程入门]带参数宏定义练习:定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
- 《四世同堂》金句摘抄(十二)
- 使用阿里云智能翻译接口案例——CSDN博客
- 老师不能把你怎样,但外面的世界可以!
- 264. 丑数 II---LeetCode---JAVA(动态规划)
- strcompare php,PHP中的startswith()和endsWith()函数
- android url回调json,【求助】本地页面如何取某个URL返回的json
- Object.hashCode()与Object.equals()