RunTest with Salesforce Tooling REST API (同步与异步)
- 6月
- 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(异步执行)与runTestsSynchronous(同步执行)两者的区别。
2.apigee for Salesforce (https://apigee.com/console/salesforce)
3.一个TestClass (Id=01p10000001Faws) 如:
(事实上,这种方式在后台队列拥挤时会非常慢,甚至会超过10分钟才会响应 :()
首先,通过apigee进行Salesforce OAuth2认证。
REST API V28.0以后的版本开始支持Tooling API,因此修改endpoint
[https://na14.salesforce.com/services/data/v24.0/]为 [https://na14.salesforce.com/services/data/v33.0//tooling/]。
如下图所示设置Request URL及参数后Send请求。
另外我们可以看到一个测试任务已经在“Apex 测试执行”中执行完毕。
这时我们该如何获取详细的执行结果呢?
用Tooling API同样可以通过关联sObject查询到详细结果。
如下图的ER所示。
如下图所示设置Request URL及参数后Send请求。
这也正是为何用Sublime Text3 + MavensMate执行测试代码远快于通过Salesforce Developer Console执行的原因吧,我想。
参考: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/intro_rest_overview.htm
本篇我将为你展示runTestsAsynchronous(异步执行)与runTestsSynchronous(同步执行)两者的区别。
准备工作
1.Salesforce账号2.apigee for Salesforce (https://apigee.com/console/salesforce)
3.一个TestClass (Id=01p10000001Faws) 如:
1.runTestsAsynchronous
异步执行测试任务将允许方法以并行的方式执行,缩短你的测试代码执行时间。(事实上,这种方式在后台队列拥挤时会非常慢,甚至会超过10分钟才会响应 :()
首先,通过apigee进行Salesforce OAuth2认证。
![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及参数后Send请求。
![apigee-runTestsAsynchronous](https://www.xgeek.net/wp-content/uploads/2015/06/apigee-runTestsAsynchronous.png)
返回结果
可以看到,请求返回结果为一个Object的Id,实际上,它是一个AsyncApexJob对象的Id。另外我们可以看到一个测试任务已经在“Apex 测试执行”中执行完毕。
![Apex Test Execution](https://www.xgeek.net/wp-content/uploads/2015/06/Apex-Test-Execution.png)
用Tooling API同样可以通过关联sObject查询到详细结果。
如下图的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
如同字面一样, runTestsSynchronous将会以同步请求的方式执行测试代码并直接返回详细的测试结果。如下图所示设置Request URL及参数后Send请求。
![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 Release Notes (version 3.10.0) – mass edit custom fields on lightning
- Salesforce DevTools Release Notes (version 3.9.0)- Object Fields, SOQL Query Editor
- Salesforce DevTools Release Notes (version 3.8.0)
- Salesforce DevTools的开发者用户突破10,000名!THANK YOU!
- Lightning Component中使用Promise处理Apex服务端请求
Top Posts
- Salesforce DevTools – Saleforce开发者必备Chrome扩展 - 225K views
- Date format 与 DateTime format - 208.7K views
- Salesforce批量编辑 (Chrome扩展) – 在任何标准视图上进行批量插入, 拷贝, 更新, 删除, 支持Classic与Lightning! - 160.5K views
- 编写一个可被计划执行的Batch 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
您必须登录才能发表评论。