小编Pet*_*ter的帖子

如何在Jenkins的Pipeline脚本中执行SQL语句?

我在管道上创建了,我想在其中执行一个 sql 查询。我编写了以下语句(只有两行代码,没有导入/类等)并在执行时抛出错误。

import groovy.sql.Sql
def sql = Sql.newInstance("jdbc:mysql://myIP:3306/dbName", "uname","password", "com.mysql.jdbc.Driver")
sql.execute "select count(*) from TableName"
Run Code Online (Sandbox Code Playgroud)

我收到此错误

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use staticMethod groovy.sql.Sql newInstance java.lang.String java.lang.String java.lang.String java.lang.String
    at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectStaticMethod(StaticWhitelist.java:174)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onStaticCall(SandboxInterceptor.java:142)
    at org.kohsuke.groovy.sandbox.impl.Checker$2.call(Checker.java:180)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedStaticCall(Checker.java:177)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:91)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
    at WorkflowScript.run(WorkflowScript:3)
    at ___cps.transform___(Native Method)
    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
    at sun.reflect.GeneratedMethodAccessor841.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
    at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
    at com.cloudbees.groovy.cps.Next.step(Next.java:58)
    at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
    at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164) …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-plugins jenkins-pipeline

5
推荐指数
1
解决办法
9779
查看次数

如何在Gatling脚本中添加条件计数> 8?

我想在http请求中添加一个以下条件,如果该条件匹配,它将为我提供KO状态。我的条件是WorkflowFailed = True OR count > 8状态将失败。

对于以上条件之一,WorkflowFailed = True我添加了以下代码,它可以正常工作,但count > 8不能正常工作。

.check(jsonPath("$.failed").transform(status => status == "true").is(false))
Run Code Online (Sandbox Code Playgroud)

我也尝试使用此代码,但是没有用,并引发错误。

.check(jsonPath("$.failed").transform(status => status == "true" || count > 8).is(false))
Run Code Online (Sandbox Code Playgroud)

19:00:52.143 [错误] igcZincCompiler $-D:... \ gatling-charts-highcharts-bundle-2.1.7 \ user-file s \ simulations \ LaunchResources.scala:83:value>不是Java的成员.util.concurrent.atomic.AtomicInteger 19:00:52.144 [错误] igcZincCompiler $-.
check(jsonPath(“ $。failed”)。transform(status => status ==“ true” || count> 8).is (false))19:00:52.144 [ERROR] igcZincCompiler $-^ 19:00:52.222 [ERROR] igcZincCompiler $-找到一个错误

这是代码,

class LaunchResources extends Simulation {

    val scenarioRepeatCount = Integer.getInteger("scenarioRepeatCount", 1).toInt
    val userCount …
Run Code Online (Sandbox Code Playgroud)

scala gatling

5
推荐指数
1
解决办法
593
查看次数

如何在加特林按顺序执行场景?

我有两个场景: 第一个场景“ getAssets”将获取所有资产ID并将其保存在列表中,第二个场景“ fetchMetadata”将迭代这些ID。

我必须执行“getAssets”的情况只有一次获取所有的ID,而“fetchMetadata”的情景,直到给定的持续时间只有1方案完成后

如何在Chain中依次执行两个方案?

这是代码,但没有按顺序执行场景。

import java.util.concurrent.ThreadLocalRandom
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._

class getAssetsMetadata extends Simulation {
    val getAssetURL = System.getProperty("getAssetURL", "https://performancetesting.net")
    val username = System.getProperty("username", "performanceuser")
    val password = System.getProperty("password", "performanceuser")
    val limit = Integer.getInteger("limit", 1000).toInt
    val userCount = Integer.getInteger("userCount", 100).toInt
    val duration = Integer.getInteger("duration",1).toInt //in minutes

    var IdList: Seq[String] = _   

    val httpProtocol = http
        .basicAuth(username, password)
        .baseURL(getAssetURL)
        .contentTypeHeader("""application/vnd.v1+json""")

    def getAssets = exec(http("List …
Run Code Online (Sandbox Code Playgroud)

java scala gatling scala-gatling

5
推荐指数
0
解决办法
2139
查看次数

带有背景颜色的粗体文本样式的excel行的Java代码

我已经搜索了一些代码并找到了一些答案,但无法以粗体显示我的Excel文件输出并设置背景颜色.我试过以下代码.你能告诉我哪里出错了吗?请看一下.谢谢.

仅供参考:我打算用BOLD蓝色或任何浅色背景制作第一排.如果您知道请帮助代码.

// Excel file generation code
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Readings");
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short)11);
font.setFontName(HSSFFont.FONT_ARIAL);
font.setBoldweight(HSSFFont.COLOR_NORMAL);
font.setBold(true);
font.setColor(HSSFColor.DARK_BLUE.index);

style.setFont(font);
// Freeze 1st Row               
sheet.createFreezePane(0, 1); 

HSSFRow row = sheet.createRow(1);
HSSFRow rowhead = sheet.createRow((short) 0);
rowhead.setRowStyle(style);

rowhead.createCell(0).setCellValue("RUN");
rowhead.createCell(1).setCellValue("NUMBER");
Run Code Online (Sandbox Code Playgroud)

java excel apache-poi

4
推荐指数
1
解决办法
5790
查看次数

Scala-如何在多行字符串文字中使用变量

我想调用“ myActionID ”变量的值。我怎么做?如果我将诸如“ actionId”:1368201之类的静态值传递给myActionID,则它可以工作,但是如果我使用“ actionId”:$ {actionIdd},它将给出错误。

以下是相关代码:

class LaunchWorkflow_Act extends Simulation {

    val scenarioRepeatCount = 1
    val userCount = 1
    val myActionID = "13682002351"

    val scn = scenario("LaunchMyFile")
        .repeat (scenarioRepeatCount) {
            exec(session => session.set("counter", (globalVar.getAndIncrement+" "+timeStamp.toString())))
            .exec(http("LaunchRequest")
            .post("""/api/test""")
            .headers(headers_0)
            .body(StringBody(
                """{    "actionId": ${myActionID} ,
                "jConfig": "{\"wflow\":[{\"Wflow\":{\"id\": \"13500145349\"},\"inherit-variables\": true,\"workflow-context-variable\": [{\"variable-name\": \"externalFilePath\",\"variable-value\": \"/var/nem/nem/media/mount/assets/Test.mp4\"},{\"variable-name\": \"Name\",\"variable-value\": \"${counter}\"}]}]}"
                }""")))

            .pause(pause) 

        }
    }

setUp(scn.inject(atOnceUsers(userCount))).protocols(httpProtocol)
Run Code Online (Sandbox Code Playgroud)

如果我将值13682002351代替myActionID,则一切正常。先谢谢了。在Gatling中执行此脚本时,出现此错误

错误ighttp.action.HttpRequestAction-'httpRequest-3'执行失败:未定义名为'myActionID'的属性

java scala string-interpolation gatling

3
推荐指数
2
解决办法
7494
查看次数

如何在加特林的两个场景之间传递价值?

我的脚本中有两个场景。我想将“CreateId”的值传递给第二个场景。我在第一个场景中保存了“CreateId”。

错误说:

未定义名为“CreateId”的属性

jsonPath($.id).find(0).exists, 什么也没找到

场景 - 1

val create = scenario("Create")
        .exec(http("post_request_create")
        .post("/api/asdf")
        .headers(headers_10)
        .body(StringBody(session =>s"""{"name": "${randomName()}"}""")).asJSON
        .check(jsonPath("$.id")
        .saveAs("CreateId"))
        )
Run Code Online (Sandbox Code Playgroud)

场景 - 2

val addTerm = scenario("Add Term")
        .repeat (repeatCount){
        exec(http("Add")

        // NOT WORKING
            //.post("""/api/asdfg/${CreateId}/terms""")

        // NOT WORKING
            .post(session => "/api/asdfg/" + session.get("CreateId").asOption[String] + "/terms")

            .headers(headers_10)
            .body(StringBody(session =>s"""{...somedata...}"""))
            )
        }
val scn = List(create.inject(atOnceUsers(1)),addTerm.inject(nothingFor(10 seconds), atOnceUsers(userCount)))
setUp(scn).protocols(httpProtocol)      
Run Code Online (Sandbox Code Playgroud)

scala gatling

2
推荐指数
1
解决办法
6208
查看次数

如何使用Scala脚本在Gatling中传递命令行输入?

我希望用户可以在从加特林执行时从命令行输入“ Count,repeatCount,testServerUrl和definitionId”。从命令行执行

> export JAVA_OPTS="-DuserCount=1 -DflowRepeatCount=1 -DdefinitionId=10220101 -DtestServerUrl='https://someurl.com'" 
> sudo bash gatling.sh
Run Code Online (Sandbox Code Playgroud)

但给出以下错误:

url null / api / workflow无法解析为URI:方案

基本上空值传递在那里。'definitionId'也一样。以下是代码。您可以尝试使用任何网址。您只需要检查通过命令行提供的值是否显示?

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._         

class TestCLI extends Simulation {           
    val userCount = Integer.getInteger("userCount", 1).toInt    
    val holdEachUserToWait = 2  
    val flowRepeatCount = Integer.getInteger("flowRepeatCount", 2).toInt    
    val definitionId  = java.lang.Long.getLong("definitionId", 0L)      
    val testServerUrl = System.getProperty("testServerUrl")

    val httpProtocol = http
            .baseURL(testServerUrl)
            .inferHtmlResources()
            .acceptHeader("""*/*""")
            .acceptEncodingHeader("""gzip, deflate""")
            .acceptLanguageHeader("""en-US,en;q=0.8""")
            .authorizationHeader(envAuthenticationHeaderFromPostman)
            .connection("""keep-alive""")
            .contentTypeHeader("""application/vnd.v7811+json""")
            .userAgentHeader("""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36""")

    val headers_0 …
Run Code Online (Sandbox Code Playgroud)

performance scala load-testing performance-testing gatling

1
推荐指数
1
解决办法
3588
查看次数