鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling

Posted 娴嬭瘯寮€鍙戞爤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling相关的知识,希望对你有一定的参考价值。

浣滆€?|    鍒樺唹
鏉ユ簮 |      鍒樺唹鐨勬€濊鲸鎮?/span>

21 涓栫邯鏄簯鐨勪笘绾? 澶ц妯′簯缃戝凡缁忓嚭鐜颁簡锛岃€屼笖鍦ㄦ湭鏉ュ嚑骞村唴浼氬緱鍒伴珮閫熷彂灞曪紝浠庤€屼娇寰楀熀浜庝簯鐨勭郴缁熶篃浼氳秺鏉ヨ秺澶氥€傚鏋滆寮€鍙戜竴娆鹃珮鎬ц兘鐨勪簯绯荤粺锛屾湇鍔″櫒鎬ц兘娴嬭瘯鏄竴涓繀涓嶅彲灏戠殑鐜妭 銆備粖澶╋紝灏辨潵浠嬬粛涓€娆炬柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿 Gatling銆?/span>

馃憖

   

涓€锛屼粈涔堟槸 Gatling

Gatling 鏄竴娆惧熀浜?Scala 寮€鍙戠殑楂樻€ц兘鏈嶅姟鍣ㄦ€ц兘娴嬭瘯宸ュ叿锛屽畠涓昏鐢ㄤ簬瀵规湇鍔″櫒杩涜璐熻浇绛夋祴璇曪紝骞跺垎鏋愬拰娴嬮噺鏈嶅姟鍣ㄧ殑鍚勭鎬ц兘鎸囨爣銆侴atling 涓昏鐢ㄤ簬娴嬮噺鍩轰簬 HTTP 鐨勬湇鍔″櫒锛屾瘮濡?Web 搴旂敤绋嬪簭锛孯ESTful 鏈嶅姟绛?锛岄櫎姝や箣澶栧畠鎷ユ湁浠ヤ笅鐗圭偣锛?/span>

  • 鏀寔 Akka Actors 鍜?Async IO锛屼粠鑰岃兘杈惧埌寰堥珮鐨勬€ц兘

  • 鏀寔瀹炴椂鐢熸垚 Html 鍔ㄦ€佽交閲忔姤琛紝浠庤€屼娇鎶ヨ〃鏇存槗闃呰鍜岃繘琛屾暟鎹垎鏋?/span>

  • 鏀寔 DSL 鑴氭湰锛屼粠鑰屼娇娴嬭瘯鑴氭湰鏇存槗寮€鍙戜笌缁存姢

  • 鏀寔褰曞埗骞剁敓鎴愭祴璇曡剼鏈紝浠庤€屽彲浠ユ柟渚跨殑鐢熸垚娴嬭瘯鑴氭湰

  • 鏀寔瀵煎叆 HAR锛圚ttp Archive锛夊苟鐢熸垚娴嬭瘯鑴氭湰

  • 鏀寔 Maven锛孍clipse锛孖ntelliJ 绛夛紝浠ヤ究浜庡紑鍙?/span>

  • 鏀寔 Jenkins锛屼互渚夸簬杩涜鎸佺画闆嗘垚

  • 鏀寔鎻掍欢锛屼粠鑰屽彲浠ユ墿灞曞叾鍔熻兘锛屾瘮濡傚彲浠ユ墿灞曞鍏朵粬鍗忚鐨勬敮鎸?/span>

  • 寮€婧愬厤璐?Gatling 閫傜敤鐨勫満鏅寘鎷細娴嬭瘯闇€姹傜粡甯告敼鍙橈紝娴嬭瘯鑴氭湰闇€瑕佺粡甯哥淮鎶わ紱娴嬭瘯鐜鐨勫鎴锋満鎬ц兘涓嶅己锛屼絾鍙堝笇鏈涘彂鎸ョ‖浠剁殑鏋侀檺鎬ц兘锛涜兘瀵规祴璇曡剼鏈繘琛屽緢濂界殑鐗堟湰绠$悊锛屽苟閫氳繃 CI 杩涜鎸佺画鐨勬€ц兘娴嬭瘯锛涘笇鏈涙祴璇曠粨鏋滆交閲忔槗璇荤瓑銆?/span>

馃憖

   

浜岋紝Gatling 涓?JMeter

JMeter 鏄洰鍓嶄娇鐢ㄦ渶涓哄箍娉涚殑鏈嶅姟鍣ㄦ€ц兘娴嬭瘯宸ュ叿涔嬩竴锛屽畠鏈€澶х殑鐗圭偣灏辨槸鎷ユ湁涓€濂楃畝鍗曟槗鐢ㄧ殑 GUI锛屼絾瀹冩渶澶х殑缂虹偣涔熸槸鐢变簬绠€鍗曟槗鐢ㄥ鑷村畠鏌愪簺鏂归潰鐨勪笉瓒筹紝姣斿娴嬭瘯鑴氭湰锛圶ML锛変笉瀹规槗缁存姢绛夈€侴atling 姝f槸閽堝 JMeter 鐨勫姡鍔垮仛浜嗗ぇ閲忔敼杩涳紝鍥犳鐩歌緝浜?JMeter锛孏atling 鎷ユ湁浠ヤ笅浼樺娍锛?/span>

  • 鍦ㄥ苟鍙戞€ц兘鏂归潰锛孏atling 浣跨敤浜?Akka Actors 鍜?Async IO, 鑰?JMeter 鍒欓噰鐢ㄤ簡涓€涓敤鎴蜂娇鐢ㄤ竴涓嚎绋嬬殑鏂瑰紡 锛屼竴鏃﹀苟鍙戠嚎绋嬭繃澶氾紝鎬ц兘灏辨€ラ€熶笅闄嶏紝寰堥毦鍏呭垎鍙戞尌纭欢鐨勮兘鍔涖€傝櫧鐒朵袱涓伐鍏烽兘鏄熀浜?JVM 鐨勶紝浣嗘槸 Actors 妯″瀷鐨勬€ц兘鍦ㄩ珮骞跺彂鐨勬儏鍐典笅鎬ц兘澶уぇ浼樹簬 Threads锛屼粠鑰屼娇寰?Gatling 鍦ㄦ洿灏戠殑鍐呭瓨鍜?CPU 鐨勬儏鍐典笅鍙互鎻愪緵鍚屾牱鐨勬祴璇曡兘鍔涳紝闄嶄綆浜嗘祴璇曟垚鏈€傚浘 1 鍜屽浘 2 鍒嗗埆灞曠幇浜嗕簩鑰呭湪骞跺彂鎬ц兘鏂归潰鐨勮〃鐜般€?/span>

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling鍥?1锛孞Meter 2.8

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling鍥?2锛孏atling 1.3.2鍥剧墖锛屾祴璇曠幆澧冨拰娴嬭瘯鑴氭湰鍙傝锛歨ttps://github.com/excilys/gatling/wiki/Benchmarks

鍏朵腑鍥?1 鍜屽浘 2 鍒嗗埆鏄?JMeter 鍜?Gatling 鍦?300 涓敤鎴峰苟鍙戜笅鐨勬祴璇曠粨鏋溿€傚彲浠ュ緢鏄庢樉鐨勭湅鍑猴紝JMeter 鐨勫苟鍙戦噺鍦?300 涓婁笅娉㈠姩锛屾渶楂樿揪鍒?400锛屾渶浣庤揪鍒?200锛岃€?Gatling 鍑犱箮绋冲畾鍦?300銆傜敱姝ゅ彲瑙?Gatling 鎬ц兘鐨勭ǔ瀹氭€с€?/span>

  • 鍦ㄦ祴璇曡剼鏈柟闈紝Gatling 鏄?Scala 浠g爜锛岃€?JMeter 涓昏鏄?XML 浠g爜銆侴atling 鍩轰簬涓€濂楀紑婧愮殑 Gatling DSL API锛屾墍浠ュ畠鐨勫姛鑳藉緢瀹规槗鎵╁睍锛屼篃涓嶉渶瑕佷娇鐢ㄨ€呯簿閫?Scala 璇█銆侱SL 鐨勪娇鐢ㄤ篃鏇村鏄撶紪鍐欏嚭绠€鏄庯紝鏄撹鎬у拰缁存姢鎬ч珮鐨勪唬鐮侊紝鑰屼笖杩樺彲浠ヤ娇鐢ㄧ増鏈伐鍏疯繘琛屾洿鏈夋晥鐨勭鐞嗐€傚洜涓烘€ц兘娴嬭瘯搴旇灞炰簬绯荤粺鍙戝竷娴佺▼涓繀涓嶅彲灏戠殑涓€涓楠わ紝鎵€浠ユ祴璇曡剼鏈簲璇ュ拰绯荤粺浠g爜涓€鏍蜂娇鐢ㄧ増鏈伐鍏疯繘琛岀粺涓€绠$悊銆?/span>

  • 鍦ㄦ姤琛ㄧ郴缁熶笂锛孏atling 鎻愪緵浜嗕竴濂楄交閲忓苟涓斿崄鍒嗗弸濂界殑 Html 鎶ヨ〃绯荤粺锛屼娇寰楃敤鎴峰彲浠ユ洿涓哄揩閫熻€屾柟渚垮湴鏌ョ湅鍜屽垎鏋愭暟鎹紝鐩稿弽锛孞Meter 鐨勬姤琛ㄧ郴缁熷嵈鍗佸垎绗ㄩ噸锛屼笖浣跨敤涔熶笉鏂逛究銆?/span>

馃憖

   

涓夛紝濡備綍鍦ㄩ」鐩腑浣跨敤 Gatling

瀵逛簬 Gatling 杩欐牱涓€涓叏鏂扮殑鏈嶅姟鍣ㄦ€ц兘娴嬭瘯宸ュ叿锛屾槸鍚﹁兘灏嗗畠寰堝ソ鐨勮繍鐢ㄥ埌椤圭洰涓苟鍙戞尌鍏朵紭鍔匡紝杩欎釜鏄竴涓洶鎵版祴璇曞喅绛栬€呯殑闂 銆備笅闈㈡垜灏嗙粨鍚堝湪涓€涓湡瀹為」鐩腑浣跨敤鍜岄儴缃?Gatling 鐨勭粡楠屾潵瑙g瓟杩欎釜闂銆?/span>


   

1锛屾惌寤烘祴璇曠幆澧?/span>

鍦ㄤ竴涓ぇ鍨嬬殑 Web 椤圭洰涓紝娴嬭瘯鐜鐨勬惌寤烘槸椤圭洰娴嬭瘯宸ヤ綔寮€濮嬬殑绗竴姝ワ紝涔熸槸鏈€涓哄叧閿殑涓€姝ワ紝鍥犱负娴嬭瘯鐜鐩存帴褰卞搷鍒版祴璇曟垚鏈拰娴嬭瘯缁撴灉銆傜敱浜庤繖涓」鐩浜庢€ц兘鐨勮姹傚苟涓嶆槸寰堥珮锛屾垜浠粡杩囪璁哄拰鍒嗘瀽锛屽喅瀹氶€夊彇铏氭嫙鏈轰綔涓烘祴璇曞钩鍙般€傝繖灏辨剰鍛崇潃琚祴绯荤粺浠ュ強娴嬭瘯瀹㈡埛绔彲浠ヤ娇鐢ㄧ殑纭欢璧勬簮姣斿 CPU 鍜屽唴瀛樺崄鍒嗘湁闄愶紝鍥犳闇€瑕佹祴璇曞伐鍏疯兘鍏呭垎浣跨敤鏈夐檺鐨勮祫婧愬彂鎸ユ渶澶х殑鎬ц兘銆?/span>


   

2锛岃繘琛岃礋杞芥祴璇?/span>

涓轰簡蹇€熷疄鐜版祴璇曡剼鏈紝鎴戦鍏堥€夋嫨浜嗕娇鐢?Gatling 褰曞埗鍔熻兘杩涜鑴氭湰褰曞埗锛屾垚鍔熷綍鍒朵互鍚庝細鍦ㄦ寚瀹氱殑鈥淥utput folder鈥濈洰褰曚笅闈㈢敓鎴愪綘鎸囧畾鈥淐lass Name鈥濅负鍚嶅瓧鐨勮剼鏈紝瑙佸浘 3銆?/span>

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling鍥?3锛孏atling Recorder

鏍规嵁鍥?3 鐨勯厤缃紝褰曞埗濂界殑鑴氭湰瀛樻斁鍦?Users/twer/work/gatling/user-files/simulations/Common/MyRecordedSimulation.scala銆傜敓鎴愮殑閮ㄥ垎鑴氭湰浠g爜濡備笅锛?/span>

class MyRecordedSimulation extends Simulation {  val httpProtocol = http    .baseURL("http:// :10.17.7.3")    .acceptHeader("image/png,image/*;q=0.8,*/*;q=0.5")    .acceptEncodingHeader("gzip, deflate")    .acceptLanguageHeader("en-US,en;q=0.5")    .connection("keep-alive")    .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0") val headers_1 = Map(    """Accept""" -> """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""",    """If-None-Match""" -> """"a3ef335152d5532e2297bd8ad288f3f9"""")

褰曞埗浠g爜娈?1

.exec(http("request_21")    .get("""/customer/images/new?app_dialog=true&dialog=true""")    .headers(headers_18))  .pause(6)  .exec(http("request_22")    .get("""/customer/images?_=1374400463122""")    .headers(headers_19))  .pause(165 milliseconds)  .exec(http("request_23")    .get("""/Users/twer/work/gatling/user-files/simulations/testdata/test1.png""")    .headers(headers_20)    .check(status.is(500)))  .pause(2)  .exec(http("request_24")    .get("""/customer/images?view=list"""))  .pause(86 milliseconds) 鈥︹€?setUp(scn.inject(atOnce(1 user))).protocols(httpProtocol)

褰曞埗浠g爜娈?2

褰曞埗鍑烘潵鐨勮剼鏈嫢鏈夊緢澶氬眬闄愭€э細

  • 鍙敮鎸?1 涓敤鎴?/span>

  • 娌℃湁妫€娴嬬偣

  • 娌℃湁閫昏緫鍒嗗眰

鍥犳锛屽畠骞朵笉鑳界敤浜庣湡姝g殑鎬ц兘娴嬭瘯銆傚浜庤繖鏍风殑鍘熷浠g爜锛屾垜浠渶瑕佽繘琛屽ぇ閲忕殑閲嶆瀯锛屼娇浠g爜鎷ユ湁寰堝ソ鐨勫彲璇绘€у拰鍙淮鎶ゆ€с€?/span>

棣栧厛鎴戜滑瑕佽繘琛屽垎灞傚鐞嗭細

  • 瀵逛簬褰曞埗浠g爜娈?1锛岄渶瑕佸缓绔嬩竴涓?Header 绫绘潵绠$悊鎵€鏈?HTTP Header锛岃繖閲屼娇鐢ㄢ€淗eaders.scala鈥濓紝鍦ㄥ綍鍒朵唬鐮佹 1 涓彧缁欏嚭浜嗏€渉eaders_1鈥濓紝瀹為檯鐨勮剼鏈寘鍚簡澶ч噺鐨?Header銆?/span>

  • 瀵逛簬褰曞埗浠g爜娈?2锛岄渶瑕佸皢娴嬭瘯鍦烘櫙鍜屾祴璇曟帶鍒跺垎寮€锛屾瘡涓€涓祴璇曞満鏅娇鐢ㄤ竴涓枃浠舵潵淇濆瓨锛?浠g爜娈?2 鎵€绀虹殑鍦烘櫙浣跨敤鈥淯ploadImageScenario.scala鈥濇潵淇濆瓨銆備富鎺ц剼鏈篃闇€瑕佸垎绂诲嚭鏉ュ瓨鍏モ€淢ainSimulation.scala鈥濓紝閫氳繃璋冪敤涓嶅悓鐨勬祴璇曞満鏅殑鑴氭湰锛屼粠鑰屽彲浠ュ鐢?HTTP 鐨勯厤缃€夐」锛屾瘮濡傦細

val httpProtocol = http    .baseURL("http:// :10.17.7.3")

鍏舵锛屾垜浠繕闇€瑕佸鍔犲鐢ㄦ埛鐨勬敮鎸侊細

  • 澶氱敤鎴锋暟鎹殑璇诲叆锛屽叾涓€渦ser_credentials.csv鈥濆瓨鍌ㄧ殑灏辨槸鐢ㄦ埛鍚嶅拰瀵嗙爜

.feed(csv("user_credentials.csv"))  .exec(http("request_login")    .post("""/customer/login""")    .param("""username""", """${username}""")    .param("""password", "${password}""")

  • 璁剧疆澶氱敤鎴风殑鍊笺€傜敱浜庢垜浠娇鐢ㄧ殑鏄櫄鎷熸満锛屾墍浠ョ粡杩囨祴璇曪紝纭畾涓?400 鐢ㄦ埛骞跺彂銆?/span>

setUp(LoginScenario.loginScn.inject(ramp(400 users) over(60 seconds))).protocols(httpProtocol)

鏈€鍚庯紝鎴戜滑杩樿澧炲姞妫€娴嬬偣锛屼娇鐢?check锛宖ind锛宻tatus 绛夊嚱鏁拌繘琛屾娴嬶紝涓嬮潰鐨勪唬鐮佹娴嬩簡鐢ㄦ埛鐧诲嚭鐨勬椂鍊?HTTP Response Status 鏄惁涓?302锛?/span>

exec(http("request_logout")  .get(("""/customer/logout""")  .headers(headers_logout)  .check(status.is(302)))

褰撶劧锛屽鏋滄祴璇曚汉鍛樼啛鎮?Gatling DSL API锛屾垜浠篃鍙互涓嶇敤褰曞埗浠g爜鍐嶈繘琛岄噸鏋勶紝鑰屾槸鐩存帴璁捐娴嬭瘯绯荤粺骞惰繘琛屾祴璇曟渚嬬殑寮€鍙戙€?/span>

椤圭洰閲囧彇浜嗘晱鎹锋柟娉曡繘琛屽紑鍙戯紝鎵€浠ョ郴缁熺殑涓€浜涘姛鑳藉湪寮€鍙戣繃绋嬩腑浼氬嚭鐜伴绻佹敼鍔紝瀵艰嚧娴嬭瘯鍦烘櫙鍜屾祴璇曡剼鏈篃浼氶殢涔嬪彂鐢熸敼鍙橈紝鍥犳锛屾祴璇曡剼鏈殑鍙鎬у拰鍙淮鎶ゆ€у浜庢垜浠潵璇村氨闈炲父閲嶈銆傚綋鏌愪釜鍔熻兘鏀瑰彉涔嬪悗锛屼娇鐢?Gatling 鑴氭湰灏辫兘鍗佸垎鏂逛究鐨勮繘琛岄槄璇诲拰閲嶆瀯銆傛瘮濡傚浜庢坊鍔?user 鐨勫姛鑳斤紝绗竴鐗堝彧闇€瑕佽兘娣诲姞 user 鍗冲彲锛堣娣诲姞 user 浠g爜 1锛夛紝鑰屽湪涓嬩竴鐗堜腑锛屽垯瑕佹眰鍦ㄦ坊鍔?user 鏃跺彲浠ラ€夋嫨璇?user 鍏锋湁閭d簺鏉冮檺锛堣娣诲姞 user 浠g爜 2锛夛紝浠g爜濡備笅锛?/span>

.exec(http("request_add_user")  .post("""/customer/users""")  .headers(headers_user)  .param("""utf8""", """鉁?"")  .param("""user[username]""", """user2""")  .param("""user[email]""", """user@gmail.com""")  .param("""user[password]""", """user2""")  .param("""user[password_confirmation]""", """user2""")

娣诲姞 user 浠g爜 1

.exec(http("request_add_user")  .post("""/customer/users""")  .headers(headers_user)  .param("""utf8""", """鉁?"")  .param("""user[username]""", """user2""")  .param("""user[email]""", """user@gmail.com""")  .param("""user[password]""", """user2""")  .param("""user[password_confirmation]""", """user2""")  .param("""user[plugins][]""", """customer_dashboard""")  .param("""user[plugins][]""", """customer_files""")  .param("""user[plugins][]""", """customer_images""")  .param("""user[plugins][]""", """customer_pages"""))

娣诲姞 user 浠g爜 2

椤圭洰鍙戝竷鍚庯紝鑻ラ」鐩姛鑳藉彂鐢熸敼鍙橈紝鎴戜滑涔熷彲浠ヤ娇鐢?Gatling 杩涜鎸佺画鐨勬€ц兘鍥炲綊娴嬭瘯锛屼繚璇佺郴缁熸€ц兘涓嶄細鍥犱负鏌愭淇敼瀵艰嚧闈為鏈熺殑闄嶄綆銆傚鏋滈檷浣庝簡锛屽氨瑕佽繘琛屽強鏃剁殑璋冩煡锛屼慨澶嶆垨鑰呮槸璋冩暣锛屼繚璇佹€ц兘涓€鐩村湪棰勬湡鐨勫彲鎺ц寖鍥村唴銆?/span>


   

3锛屾祴璇曟姤琛?/span>

Gatling 娴嬭瘯鎶ヨ〃鍩轰簬 HTML锛屽苟涓斿湪娴嬭瘯杩囩▼涓笟宸茬敓鎴愶紝鎵€浠ユ墦寮€閫熷害寰堝揩銆傝€屼笖锛屽綋鎶婇紶鏍囩Щ鍔ㄥ埌涓嶅悓鏁版嵁杞翠笂鏃讹紝閮戒細鏈夊脊鍑烘鏄剧ず杩欎釜鐐逛笂璇︾粏鐨勬祴璇曟暟鎹俊鎭€傝繖绉嶅姩鎬佹樉绀烘暟鎹殑鏂瑰紡闈炲父鏂逛究鏌ョ湅鍜屽垎鏋愭暟鎹€傝€冭檻鍒伴」鐩湡瀹炴暟鎹殑涓嶄究锛屾垜灏嗛€氳繃 Gatling 瀹樻柟缃戠珯缁欏嚭鐨勭ず渚嬫姤琛ㄨ繘琛岃鏄庛€?/span>

Gatling 鐨勬姤琛ㄥ垎涓轰袱绫伙細GLOBAL 鍜?DETAILS锛屽叾涓?GLOBAL 涓昏鏄姹傜浉鍏崇殑缁熻鏁版嵁锛屾瘮濡傛瘡绉掕姹傛暟锛岃姹傛垚鍔熶笌澶辫触鏁扮瓑锛涘叾涓?DETAILS 涓昏鏄姹傛椂闂寸浉鍏崇殑缁熻鏁版嵁锛屾瘮濡傝姹傚搷搴旀椂闂达紝璇锋眰鍝嶅簲寤惰繜鏃堕棿绛夈€?/span>

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling鍥?4 姣忕璇锋眰鏁帮紝鍥剧墖鏉ヨ嚜 http://gatling-tool.org/sample/req_home.html

褰撻紶鏍囨斁鍒板浘涓换浣曚竴涓偣鐨勬椂鍊欙紝瀵瑰簲鏃堕棿鐐逛笂璇锋眰鐨勮缁嗘暟鎹氨浼氫互鍥句腑鐧借壊鐨勫脊鍑烘鐨勬柟寮忚繘琛屾樉绀恒€傚湪涓嬮潰鐨勮姹傚搷搴斿欢杩熸椂闂村浘閲岄潰涔熸湁鍚屾牱鐨勫姛鑳姐€?/span>

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling鍥?5 璇锋眰鍝嶅簲寤惰繜鏃堕棿锛屽浘鐗囨潵鑷?http://gatling-tool.org/sample/index.html


   

4锛屼笌 CI 鐨勯泦鎴?/span>

椤圭洰鐨?CI 绯荤粺閫夌敤鐨勬槸 Jenkins锛屽洜涓?Jenkins 鏈?Gatling 鐨勬彃浠讹紝鎵€浠ラ€氳繃杩欎釜鎻掍欢鍙互鍦?Jenkins 涓婄洿鎺ユ煡鐪?Gatling 鐨勬祴璇曠粨鏋滐紝濡傚浘 6 鎵€绀恒€?/span>

鍥?6 Jenkins Gatling 鎻掍欢锛屽浘鐗囨潵鑷細https://wiki.jenkins-ci.org/display/JENKINS/Gatling+Plugin

鎴戜滑杩樻妸鐢熸垚鐨勬姤琛ㄥ瓨妗e埌姣忎釜 Build 閲岄潰锛岃繖鏍峰氨鍙互鍦ㄦ瘡涓?Build 涓幏寰楅偅娆℃祴璇曠殑鎵€鏈夋姤琛ㄣ€?/span>


   

5锛屾洿澶氱被鍨嬬殑娴嬭瘯

鍏朵粬绫诲瀷鐨?HTTP 鏈嶅姟鍣ㄦ€ц兘娴嬭瘯锛屾瘮濡傜灛闂村帇鍔涙祴璇曪紝鑰愪箙鎬ф祴璇曠瓑锛?閮藉崄鍒嗛€傚悎浣跨敤 Gatling銆?/span>

馃憖

   

鍥涳紝鏈潵鐨?Gatling

Gatling 鍙戝竷鐨勬椂闂磋櫧鐒朵笉闀匡紝浣嗗嚟鍊熷叾浼樿壇鐨勬€ц兘锛孌SL 妯″紡鐨勮剼鏈紝杞婚噺鍙嬪ソ鐨勬姤琛ㄧ郴缁熷湪浼楀鏈嶅姟鍣ㄦ€ц兘娴嬭瘯宸ュ叿涓劚棰栬€屽嚭銆傚湪 2013 骞?5 鏈堝彂甯冪殑 ThoughtWorks 鎶€鏈浄杈句腑锛孏atling 琚垪鍏ヤ簡 ADOPT锛屽苟鍦ㄤ竴浜?ThoughtWorks 椤圭洰涓緱鍒颁簡瀹為檯鐨勮繍鐢ㄣ€備笉杩囷紝Gatling 杩樻槸瀛樺湪涓€浜涢棶棰橈紝姣斿涓嶆敮鎸佸垎甯冨紡妯″瀷锛涢粯璁ゅ彧鏀寔 HTTP锛屽浜庡叾浠栧崗璁渶瑕佽嚜宸卞姩鎵嬭繘琛屾墿灞曪紱鎶ヨ〃绉嶇被涔熶笉鏄緢涓板瘜 銆傚€樿嫢 Gatling 鑳藉湪杩欏嚑鏂归潰鏈夋墍绐佺牬锛岄偅涔堝畠蹇呭皢鎴愪负鏂颁竴浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿涓殑鏉€鎵嬮攺銆?/span>

娴嬭瘯寮€鍙戞爤

杞欢娴嬭瘯寮€鍙戝悎骞跺繀灏嗘槸瓒嬪娍锛屼笉鎳傚紑鍙戠殑娴嬭瘯銆佷笉鎳傛祴璇曠殑寮€鍙戦兘灏嗗彲鑳借閫愭笎鏇夸唬锛屽洜姝ゅ墠鐬荤殑鎶€鏈偍澶囧拰鐭ヨ瘑绉疮鏄垜浠互鍚庡湪鑱屽満鍜岃涓氳劚棰栬€屽嚭鐨勬硶瀹濓紝鏈熸湜鎴戜滑鐨勭粡楠屽拰鎶€鏈垎浜兘璁╀綘姣忓ぉ閮芥垚闀垮拰杩涙锛屾棭鏃ユ垚涓烘祴璇曞紑鍙戞爤涓婄殑鎶€鏈ぇ鐗泘~


闀挎寜浜岀淮鐮?寰俊鎵弿鍏虫敞


娆㈣繋鍔犲叆QQ缇や氦娴佸拰鎻愰棶锛?span class="mq-289">427020613

浜掕仈缃戞祴璇曞紑鍙戜竴绔欏紡鍏ㄦ爤鍒嗕韩骞冲彴


以上是关于鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling的主要内容,如果未能解决你的问题,请参考以下文章

iOS鎬ц兘娴嬭瘯瀹炴垬-instruments

鎬ц兘娴嬭瘯鐢ㄤ緥璁捐

Oracle IO鎬ц兘娴嬭瘯

linux绯荤粺IO鎬ц兘娴嬭瘯

銆愮洿鎾€戞暣杞﹂┚涔樻€ц兘娴嬭瘯璇勪环瑙e喅鏂规

涓嬪懆涓夛綔鏈嶅姟绔郴缁熸€ц兘娴嬭瘯