2016-09-14 84 views
2

我從swagger定義中生成Jmeter的jmx文件,JMX和生成的測試數據CSV看起來相當無用,它沒有關於API預期的參數信息,沒有http狀態代碼響應映射信息等Swagger Codegen JMeter測試數據模板

您可以採取任何定義文件,重現此:

  1. http://editor.swagger.io/#/
  2. 打開任何示例從文件菜單
  3. 從生成C Lient菜單,點擊Jmeter

我期望的是帶有整個API骨架的JMX,這樣QA人員不必擔心這一點,只關注測試。

我爲其他語言/工具生成的所有客戶端都足夠好,除了Jmeter之外,我在這裏做了什麼錯事嗎?

回答

4

我爲不同的API生成了JMeter(JMX),並且讓它能夠正常工作,儘管存在一些問題和注意事項。

首先,它產生

  • 用戶定義的變量在主機替代,港口,測試用例,csvFileName
  • 每API
  • 每個方法線程組一個JMX(POST,GET,.. )
  • 每個線程組的HTTP標題管理器,空白但在那裏很有用。
  • HTTP取樣爲每個請求
  • 用於填充參數
  • 加載CSV數據的值,其在CSV定義的錯誤碼驗證
  • HTTP狀態斷言文件

警告和問題

  • 它不會讓你的主機免於配置,它將取代本地主機。你必須改變它或通過命令行傳遞它
  • 它使用8080的默認端口,這也讓我有些悲傷。
  • 循環計數由變量testCases控制。然而,有在JMeter的招搖,代碼生成模板中的錯誤,如果你想通過命令行來傳遞這

    • 測試用例變量中有定義測試用例爲$ {模板中的錯誤__ P(主機,10 )},但它應該是$ {__ P(測試用例,10)} enter image description here
  • GET的參數填充0而不是$ {}變量名,這是從template在招搖代碼生成。我在我的叉子中有一個修復,我已經測試過。另一種選擇是隻是爲了解決它在JMX文件 原始 enter image description here 與編輯後的參數 enter image description here

例揚鞭,工程

下面是我用Swagger file(改回聲)和生成(修改參數)JMX。我已經使用RedLine13 Example Test測試了這個JMX並根據需要傳遞了參數。在參數

-JtestCases=50 
-Jhost=mazimi-prod.apigee.net 
-Jport=80 

這裏路過的例子YAML

--- 
swagger: '2.0' 
info: 
    version: 1.0.0 
    title: Echo 
    description: | 
    #### Echos back every URL, method, parameter and header 
    Feel free to make a path or an operation and use **Try Operation** to test it. The echo server will 
    render back everything. 
schemes: 
    - http 
host: mazimi-prod.apigee.net 
basePath: /echo 
paths: 
    /{id}: 
    get: 
     parameters: 
     - name: id 
      in: path 
      description: ID 
      type: string 
      required: true 
     - name: user 
      in: query 
      description: name 
      type: string 
      required: true 
     - name: location 
      in: query 
      description: location 
      type: string 
      required: true 
     responses: 
     200: 
      description: Echo GET 

在揚鞭的CodeGen更新JMeter的模板

由於有製造SwaggerCode代我在這個工作無縫的幾個問題創建了issue and pull request。如果你需要更快地使用它的叉子在這裏https://github.com/richardfriedman/swagger-codegen/commit/5aff601eaccf67ec44bb681816d40a25e5aa20a3

+0

謝謝..將調查它,並很快回來 –

+0

好吧,我試過了...我把你的分支,並建立它...生成的代碼..它看起來更好......把事情放到上下文中......我預計身體參數會預先填充每個api的模型模式......是不合理的嗎?模式非常大,嵌套,我希望QA人員在發送請求時不會犯拼寫錯誤......可以以某種方式完成這項工作嗎? –

+0

我認爲這個模板可以使用相當多的改進,是的,架構中定義的任何東西都可以進入模板。 –