随机数生成java代码_Java Bullshifier –生成大量随机代码库
隨機數生成java代碼
生成大量隨機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 (要生成的jar數量)
請記住,生成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代碼
總結
以上是生活随笔為你收集整理的随机数生成java代码_Java Bullshifier –生成大量随机代码库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蔼组词 汉字蔼怎么组词
- 下一篇: 徜组词 徜字如何组词