gatling压力脚本
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class testapi extends Simulation {
val httpConf = http
.baseURL("http://test111.com") // Here is the root for all relative URLs
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") // Here are the common headers
.doNotTrackHeader("1")
.acceptLanguageHeader("en-US,en;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36")
val actions = csv("test.csv").random
val scn = scenario("testapi")
.feed(actions)
.exec(http("setting")
.get("${url}&ip=${test_ip}")
.check(status.is(200)))
setUp(scn.inject(constantUsersPerSec(800) during(10 minutes)).protocols(httpConf))
}
test.csv是线上日志生成csv文件,放在user-files/data目录下,
格式为csv格式:
test_ip,url
10.83.157.217,/api/xx?id=123
10.83.157.217,/api/xx?id=456
10.83.157.217,/api/xx?id=789
第一行为文件每列的名称,在.get("${url}&ip=${ip}")使用。
以后的文件为url参数。