使用SAP API portal进行SAP SuccessFactors的API测试

简介:

登录api.sap.com, 根据关键字SuccessFactors找到对应的API目录:

找到foundation/Platform级别的API,进入之后,

选择User Management:

点击Logon,以使用API控制台自带的控制功能:

点击Try Out, 就可以像使用postman一样,使用这个API控制台自带的测试功能了:

$filter string里可以测试这个OData API的filter操作:

从测试结果可以发现,firstName为Sami的user,在这个sandbox系统里的user ID为50004:


点击Show API Key,拿到一个API key,这样就能在该API控制台以外的地方调用API.


点击Code Snipet,可以把自动生成的API调用代码复制下来,直接粘贴到应用里使用。

点击Curl,获得使用工具curl进行测试的命令行:

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User" --header "APIKey: e9ZLBOfexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User" --header "APIKey: e9ZLBOkMUexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

API endpoint for API sandbox

Optional query parameters: "$top" , "$skip"

To view the complete list of query parameters, see its API definition.

Available API Endpoints

https://api2.successfactors.eu/odata/v2

https://apisalesdemo2.successfactors.eu/odata/v2

https://api2preview.sapsf.eu/odata/v2

https://api4.successfactors.com/odata/v2

https://apisalesdemo4.successfactors.com/odata/v2

https://api4preview.sapsf.com/odata/v2

https://api5.successfactors.eu/odata/v2

https://api8.successfactors.com/odata/v2

https://apisalesdemo8.successfactors.com/odata/v2

https://api8preview.sapsf.com/odata/v2

https://api10.successfactors.com/odata/v2

https://api10preview.sapsf.com/odata/v2

https://api012.successfactors.eu/odata/v2

https://apirot.successfactors.eu/odata/v2

https://api12preview.sapsf.eu/odata/v2

https://api15.sapsf.cn/odata/v2

https://api16.sapsf.eu/odata/v2

https://api17preview.sapsf.com/odata/v2

https://api17.sapsf.com/odata/v2

https://api18preview.sapsf.com/odata/v2

https://api18.sapsf.com/odata/v2

得到的结果:



也可以通过select操作,让API只返回firstName和lastName两个字段的值:
curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/
User,UserPermissions/User?%24top-5&%24select=firstName%2ClastName" --header 'APIKey: e9ZLBOXsAfkMUexchhHN' --header 'Accept: application/ison' --header "Content-Type: application/ison"

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User,UserPermissions/User?%24top-5&%24select=firstName%2ClastName" --header "APIKey: e9ZibykWXsAfkMUexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

在SAP UI5应用里消费API的代码:

//Create JSON Model with URL
var oModel = new sap.ui.model.json.JSONModel();

//API Key for API Sandbox
var sHeaders = {"Content-Type":"application/json","Accept":"application/json","APIKey":"e9ZLBOfIplCOnibykWXsAfkMUexchhHN"};

//Available Security Schemes for productive API Endpoints
//Basic Authentication

//Basic Auth : provide username:password in Base64 encoded in Authorization header

//sending request
//API endpoint for API sandbox 
oModel.loadData("https://sandbox.api.sap.com/successfactors/odata/v2/User", null, true, "GET", null, false, sHeaders);
//Optional query parameters: "$top" , "$skip"
//To view the complete list of query parameters, see its API definition.

//Available API Endpoints
//https://api2.successfactors.eu/odata/v2
//https://apisalesdemo2.successfactors.eu/odata/v2
//https://api2preview.sapsf.eu/odata/v2
//https://api4.successfactors.com/odata/v2
//https://apisalesdemo4.successfactors.com/odata/v2
//https://api4preview.sapsf.com/odata/v2
//https://api5.successfactors.eu/odata/v2
//https://api8.successfactors.com/odata/v2
//https://apisalesdemo8.successfactors.com/odata/v2
//https://api8preview.sapsf.com/odata/v2
//https://api10.successfactors.com/odata/v2
//https://api10preview.sapsf.com/odata/v2
//https://api012.successfactors.eu/odata/v2
//https://apirot.successfactors.eu/odata/v2
//https://api12preview.sapsf.eu/odata/v2
//https://api15.sapsf.cn/odata/v2
//https://api16.sapsf.eu/odata/v2
//https://api17preview.sapsf.com/odata/v2
//https://api17.sapsf.com/odata/v2
//https://api18preview.sapsf.com/odata/v2
//https://api18.sapsf.com/odata/v2

//You can assign the created data model to a View and UI5 controls can be bound to it. Please refer documentation available at the below link for more information.
//https://sapui5.hana.ondemand.com/#docs/guide/96804e3315ff440aa0a50fd290805116.html#loio96804e3315ff440aa0a50fd290805116

//The below code snippet for printing on the console is for testing/demonstration purpose only. This must not be done in real UI5 applications.
oModel.attachRequestCompleted(function(oEvent){
    var oData = oEvent.getSource().oData;
    console.log(oData);
});

在SAP云平台ABAP编程环境里消费API的ABAP代码:


TRY.
"create http destination by url; API endpoint for API sandbox 
DATA(lo_http_destination) = 
     cl_http_destination_provider=>create_by_url( 'https://sandbox.api.sap.com/successfactors/odata/v2/User' ).
  "alternatively create HTTP destination via destination service
    "cl_http_destination_provider=>create_by_cloud_destination( i_name = '<...>'
     "                            i_service_instance_name = '<...>' )
    "SAP Help: https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/f871712b816943b0ab5e04b60799e518.html

"Available API Endpoints
"https://api2.successfactors.eu/odata/v2
"https://apisalesdemo2.successfactors.eu/odata/v2
"https://api2preview.sapsf.eu/odata/v2
"https://api4.successfactors.com/odata/v2
"https://apisalesdemo4.successfactors.com/odata/v2
"https://api4preview.sapsf.com/odata/v2
"https://api5.successfactors.eu/odata/v2
"https://api8.successfactors.com/odata/v2
"https://apisalesdemo8.successfactors.com/odata/v2
"https://api8preview.sapsf.com/odata/v2
"https://api10.successfactors.com/odata/v2
"https://api10preview.sapsf.com/odata/v2
"https://api012.successfactors.eu/odata/v2
"https://apirot.successfactors.eu/odata/v2
"https://api12preview.sapsf.eu/odata/v2
"https://api15.sapsf.cn/odata/v2
"https://api16.sapsf.eu/odata/v2
"https://api17preview.sapsf.com/odata/v2
"https://api17.sapsf.com/odata/v2
"https://api18preview.sapsf.com/odata/v2
"https://api18.sapsf.com/odata/v2

"create HTTP client by destination
DATA(lo_web_http_client) = cl_web_http_client_manager=>create_by_http_destination( lo_http_destination ) .

"adding headers with API Key for API Sandbox
DATA(lo_web_http_request) = lo_web_http_client->get_http_request( ).
lo_web_http_request->set_header_fields( VALUE #( 
(  name = 'Content-Type' value = 'application/json' )
(  name = 'Accept' value = 'application/json' )
(  name = 'APIKey' value = 'e9ZLBOfIplCOnibykWXsAfkMUexchhHN' )
 ) ).

"Available Security Schemes for productive API Endpoints
"Bearer and Basic Authentication
"lo_web_http_request->set_authorization_bearer( i_bearer = '<...>' ).
"lo_web_http_request->set_authorization_basic( i_username = '<...>' i_password = '<...>' ).

"set request method and execute request
DATA(lo_web_http_response) = lo_web_http_client->execute( if_web_http_client=>GET ).
DATA(lv_response) = lo_web_http_response->get_text( ).

CATCH cx_http_dest_provider_error cx_web_http_client_error cx_web_message_error.
    "error handling
ENDTRY.

"uncomment the following line for console output; prerequisite: code snippet is implementation of if_oo_adt_classrun~main
"out->write( |response:  { lv_response }| ).

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
25天前
|
监控 数据可视化 测试技术
Apifox 如何进行 API 自动化测试?经验之谈
选择 Apifox 来进行 API 自动化测试能够确保每次迭代的质量,避免引入新的 bug,还要实现自动化测试、定时测试、产品监控、可视化测试、持续集成等,帮助提高效率,通过设计和执行有针对性的测试用例,来全面验证产品功能,确保软件系统能够正常运行,减少上线后的问题。
Apifox 如何进行 API 自动化测试?经验之谈
|
1月前
|
安全 测试技术 API
API 测试是什么?如何进行 API 测试?
在互联网时代,API已成为软件间交互的关键。API测试验证API是否按预期工作,通过检查响应来确保其正确性、可靠性和安全性。与UI测试不同,API测试聚焦底层功能,有助于早期发现并修复缺陷。它能验证软件质量、加速开发周期、促进微服务架构并支持持续集成/交付。常见的测试类型包括单元测试、功能测试、集成测试、性能测试、安全测试及回归测试。使用自动化工具如Apifox能提高测试效率,支持可视化编排、零代码配置流程条件、生成详细测试报告及快速性能测试,从而确保API质量并提升用户体验。
API
8 1
|
1月前
|
测试技术 API
使用wrk对api接口进行性能测试
使用wrk对api接口进行性能测试
|
1月前
|
机器学习/深度学习 安全 测试技术
API 接口测试的发展前景展望
在数字化时代,API已成为软件系统集成的核心。随着微服务架构普及与分布式系统增多,API数量激增,对接口测试需求大幅提升。智能化测试借助AI技术提高效率与质量,并降低成本。新技术如容器化和服务化架构催生新型API,推动测试方法不断创新。行业数字化转型与云服务发展进一步强调API测试重要性,开放API生态建设亦依赖严格测试确保安全与正确性。面对网络安全威胁,API安全测试愈发关键。尽管多协议并存和技术挑战带来复杂性,高端测试人才短缺,但API测试前景广阔,将持续发挥关键作用并适应新需求。
|
2月前
|
安全 算法 测试技术
淘宝API接口测试中的安全性保障
在电商领域,淘宝API连接商家与消费者,安全性至关重要。本文探讨了确保API接口测试安全的方法与最佳实践:接口签名确保请求完整性;Token方案防抓包和数据爬取;使用Postman和Katalon Studio提高测试效率。此外,还强调了使用授权认证、数据加密、参数验证及限制请求频率等安全配置的重要性。最后,提醒测试者注意账户授权、数据格式、遵循安全规范及保持工具更新。这些措施共同保障了API的安全性和稳定性。
|
2月前
|
安全 测试技术 API
淘宝API接口测试的详细步骤
理解API文档和规范至关重要; 它们详细描述了请求参数、方法、路径及预期响应, 帮助测试人员准确设计测试用例。测试用例需覆盖正常与异常流程, 可采用自动化工具如Postman辅助编写。测试前要配置好环境, 包括服务器、数据库及测试数据, 并确保安全措施到位。执行测试时选择合适的工具, 如JMeter或SoapUI, 并验证结果符合预期。使用问题跟踪工具记录并跟进测试中发现的问题, 以提升软件质量。
|
2月前
|
API
RestSharp编写api接口测试,并实现异步调用(不卡顿)
【7月更文挑战第14天】以下是使用 `RestSharp` 进行 API 接口测试并实现异步调用的示例代码,以避免发送请求和等待响应过程中导致的界面或程序卡顿。关键步骤包括:创建 `RestClient` 并指定基础 URL;创建 `RestRequest` 并指定端点及方法;使用 `ExecuteAsync` 异步发送请求,并通过 `await` 等待响应。 对于特定需求,如需测试获取用户信息的 API,可在请求中添加身份验证头或查询参数。 通过灵活配置请求参数和处理响应,可以满足各种 API 测试的需求。
63 10
|
2月前
|
安全 Java 测试技术
淘宝API接口测试全攻略
淘宝提供丰富的API接口以促进与平台的数据交互和功能开发。为确保稳定性和安全性,API接口测试至关重要。测试前需熟悉API文档、选配工具(如Postman、JUnit、Selenium)并在独立环境中进行。测试包括端到端、单元及集成测试,并需关注安全问题和正确的数据传输格式。通过有效测试可提升API质量与用户体验。
|
2月前
|
安全 测试技术 网络安全
API渗透测试的基本流程
【7月更文挑战第9天】API渗透测试类似Web应用测试,涉及资产分析和模拟攻击,以发现安全缺陷。