RunTest with Salesforce Tooling REST API (同期と非同期)
- Jun
- 03
- Posted by Lin
- Posted in Other, REST API, Salesforce, Tooling API
SalesforceはTooling REST APIを通じてテスト実行することをサポートしています、runTestsAsynchronous(非同期)とrunTestsSynchronous(同期)二つ方式があります。
参照: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/intro_rest_overview.htm
本ポストでは、runTestsAsynchronous (非同期)and runTestsSynchronous(同期)の違いを説明します。
2.apigee for Salesforce (https://apigee.com/console/salesforce)
3.一つTestClass (Id=01p10000001Faws) 例:
(実際には、この方式でテストタスクが多い場合はかなり遅くて,10分以上超える場合もあります(汗.. )
まず、Salesforce OAuth2でapigeeを認証する必要があります。
REST API バージョンV28.0以降はTooling APIをサポート初めますので、エンドポイントを
[https://na14.salesforce.com/services/data/v24.0/] から [https://na14.salesforce.com/services/data/v33.0//tooling/]に変更します。
「Request URL」と「Parameter」を下記のイメージの通り設定してから送信します。
それで「Apex テスト実行」には新規テストが実行されたことが確認できます。
これで、詳細テスト結果はどうやって取得しますでしょうか?
Tooling API を使用して関連オブジェクトから詳細テスト結果のクエリは可能です。
次は関連オブジェクのER図です、クエリして見ましょう。
「Request URL」と「Parameter」を下記のイメージの通り設定してから送信します。
これはSublime Text3 + MavensMateでテスト実行はいつもSalesforce開発者コンソールから実行よりはるかに速いの原因ではないかと思います。
参照: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/intro_rest_overview.htm
本ポストでは、runTestsAsynchronous (非同期)and runTestsSynchronous(同期)の違いを説明します。
準備
1.Salesforceアカウント2.apigee for Salesforce (https://apigee.com/console/salesforce)
3.一つTestClass (Id=01p10000001Faws) 例:
1.runTestsAsynchronous
非同期テスト実行は各テストメソッドを並行実行することができ、実行時間は短縮することができます。(実際には、この方式でテストタスクが多い場合はかなり遅くて,10分以上超える場合もあります(汗.. )
まず、Salesforce OAuth2でapigeeを認証する必要があります。
![apigee](https://www.xgeek.net/wp-content/uploads/2015/06/apigee.png)
![apigee-auth2](https://www.xgeek.net/wp-content/uploads/2015/06/apigee-auth2.png)
「Request URL」と「Parameter」を下記のイメージの通り設定してから送信します。
![apigee-runTestsAsynchronous](https://www.xgeek.net/wp-content/uploads/2015/06/apigee-runTestsAsynchronous.png)
レスポンス
レスポンス結果の通り、一つオブジェクトIdのようなものが返してきました、実はAsyncApexJobのIdです。それで「Apex テスト実行」には新規テストが実行されたことが確認できます。
![Apex Test Execution](https://www.xgeek.net/wp-content/uploads/2015/06/Apex-Test-Execution.png)
Tooling API を使用して関連オブジェクトから詳細テスト結果のクエリは可能です。
次は関連オブジェクのER図です、クエリして見ましょう。
![ER](https://www.xgeek.net/wp-content/uploads/2015/06/ER1.png)
1.ApexTestQueueItem [Document]
![apigee-ApexTestQueueItem](https://www.xgeek.net/wp-content/uploads/2015/06/apigee-ApexTestQueueItem.png)
レスポンス
2.ApexTestResult [Document]
レスポンス
3.ApexCodeCoverage [Document]
レスポンス
2.runTestsSynchronous
API名の通り、runTestsSynchronousは同期でテスト実行し、実行結果を直接返すことができます。「Request URL」と「Parameter」を下記のイメージの通り設定してから送信します。
![apigee-runTestsSynchronous](https://www.xgeek.net/wp-content/uploads/2015/06/apigee-runTestsSynchronous.png)
レスポンス
この方式だと、「Apex テスト実行」にはテスト実行が新規されないです。![Apex Test Execution-runTestsSynchronous](https://www.xgeek.net/wp-content/uploads/2015/06/Apex-Test-Execution-runTestsSynchronous.png)
最近の投稿
- Salesforce DevTools リリースノート (version 3.10.0) – Lightning上項目一括編集
- Salesforce DevTools リリースノート (version 3.9.0) – 項目検索、SOQLクエリエディター
- Salesforce DevTools リリースノート (version 3.8.0)
- Salesforce DevTools利用者が10,000名達成!ありがとう!
- Lightning ComponentのApex側とデータ通信にPromiseを活用しよう
Top Posts
- Salesforce DevTools – 5万人以上愛用!強力なSalesforce開発者ツール - 225K views
- Date format && DateTime format - 208.7K views
- Salesforce一括編集 (Chrome拡張機能) -標準リストビューで一括新規, 更新, コピー, 削除, ClassicとLightning両方使える! - 160.5K views
- スケージュール可能なApex一括処理バッチの実装 - 123.5K views
- Sublime Text 3でSalesforceの爆速開発環境を構築 - 122.9K views
カテゴリー
- APEX
- アプリ
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- 交流会
- Heroku
- iOS & Object-c
- Lightnint Component
- Linux & Mac OS
- Metadata API
- Node.js
- Open Source
- Other
- PHP Framework
- Release Notes
- REST API
- Salesforce
- Salesforce DevTools
- Salesforce DX
- SOQL
- Tooling API
- Unit Tests
- Validation Rule
- Visualforce
- WordPress
コメントを投稿するにはログインしてください。