REST Assured – отправка пользовательского типа контента в запросеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 REST Assured – отправка пользовательского типа контента в запросе

Сообщение Anonymous »

У меня есть такой метод конечной точки

Код: Выделить всё

    public  Response navigationEndpoint(T body, String method, String endpoint, DataObject dataObject, String requestName) {
AllureRestAssured restAssured = new AllureRestAssured();
restAssured.setRequestAttachmentName(requestName + " Request");
restAssured.setResponseAttachmentName(requestName + " Response");

RequestSpecification requestSpecification = given()
.filter(restAssured)
.filter(new SwaggerCoverageRestAssured())
.filter(new ReportPortalRestAssuredLoggingFilter(1024, LogLevel.INFO))
.log().all()
.baseUri("https://api." + System.getProperty("base.uri") + "/navigation")
.contentType("application/vnd.thermofisher.luna.folder")
.header("Authorization", "Bearer " + dataObject.getAccessToken());

if (body != null) {
requestSpecification.body(body);
}

return requestSpecification
.when()
.request(method, "/api/v1"  + endpoint)
.then()
.log().all()
.extract()
.response();
}
Проблема в том, что мне нужно установить этот .contentType("application/vnd.thermofisher.luna.folder")
Однако когда я пытаюсь запустить тест, я получаю сообщение об ошибке

Код: Выделить всё

java.lang.IllegalArgumentException:  C a n n o t   s e r i a l i z e   b e c a u s e   c a n n o t   d e t e r m i n e   h o w   t o   s e r i a l i z e   c o n t e n t - t y p e   a p p l i c a t i o n / v n d . t h e r m o f i s h e r . l u n a . f o l d e r < b r   / > < b r   / >         a t   j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D i r e c t C o n s t r u c t o r H a n d l e A c c e s s o r . n e w I n s t a n c e ( D i r e c t C o n s t r u c t o r H a n d l e A c c e s s o r . j a v a : 6 7 ) < b r   / >         a t   j a v a . b a s e / j a v a . l a n g . r e f l e c t . C o n s t r u c t o r . n e w I n s t a n c e W i t h C a l l e r ( C o n s t r u c t o r . j a v a : 4 9 9 ) < b r   / >         a t   j a v a . b a s e / j a v a . l a n g . r e f l e c t . C o n s t r u c t o r . n e w I n s t a n c e ( C o n s t r u c t o r . j a v a : 4 8 3 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r e f l e c t i o n . C a c h e d C o n s t r u c t o r . i n v o k e ( C a c h e d C o n s t r u c t o r . j a v a : 7 3 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r e f l e c t i o n . C a c h e d C o n s t r u c t o r . d o C o n s t r u c t o r I n v o k e ( C a c h e d C o n s t r u c t o r . j a v a : 6 0 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . C o n s t r u c t o r S i t e $ C o n s t r u c t o r S i t e N o U n w r a p . c a l l C o n s t r u c t o r ( C o n s t r u c t o r S i t e . j a v a : 8 6 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . C a l l S i t e A r r a y . d e f a u l t C a l l C o n s t r u c t o r ( C a l l S i t e A r r a y . j a v a : 5 7 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . A b s t r a c t C a l l S i t e . c a l l C o n s t r u c t o r ( A b s t r a c t C a l l S i t e . j a v a : 2 6 3 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . A b s t r a c t C a l l S i t e . c a l l C o n s t r u c t o r ( A b s t r a c t C a l l S i t e . j a v a : 2 7 7 ) < b r   / >         a t   i o . r e s t a s s u r e d . i n t e r n a l . m a p p i n g . O b j e c t M a p p i n g . s e r i a l i z e ( O b j e c t M a p p i n g . g r o o v y : 1 8 0 ) < b r   / >         a t   i o . r e s t a s s u r e d . i n t e r n a l . m a p p i n g . O b j e c t M a p p i n g $ s e r i a l i z e . c a l l ( U n k n o w n   S o u r c e ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . C a l l S i t e A r r a y . d e f a u l t C a l l ( C a l l S i t e A r r a y . j a v a : 4 5 ) < b r   / >         a t   o r g . c o d e h a u s . g r o o v y . r u n t i m e . c a l l s i t e . A b s t r a c t C a l l S i t e . c a l l ( A b s t r a c t C a l l S i t e . j a v a : 1 2 5 ) < b r   / >         a t   i o . r e s t a s s u r e d . i n t e r n a l . R e q u e s t S p e c i f i c a t i o n I m p l . b o d y ( R e q u e s t S p e c i f i c a t i o n I m p l . g r o o v y : 7 7 0 ) < b r   / >         a t   s k y n e t . E n d p o i n t s . n a v i g a t i o n E n d p o i n t ( E n d p o i n t s . j a v a : 2 1 0 ) < b r   / >         a t   s k y n e t . s t e p s . N a v i g a t i o n S t e p s . p o s t F o l d e r s ( N a v i g a t i o n S t e p s . j a v a : 1 7 ) < b r   / >         a t   s k y n e t . s e r v i c e s . p o l i c y M a n a g e m e n t S e r v i c e . p o s i t i v e . P o l i c y T e s t . p u t P o l i c y ( P o l i c y T e s t . j a v a : 5 2 ) < b r   / >         a t   j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D i r e c t M e t h o d H a n d l e A c c e s s o r . i n v o k e ( D i r e c t M e t h o d H a n d l e A c c e s s o r . j a v a : 1 0 4 ) < b r   / >         a t   j a v a . b a s e / j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 5 7 7 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . c o m m o n s . u t i l . R e f l e c t i o n U t i l s . i n v o k e M e t h o d ( R e f l e c t i o n U t i l s . j a v a : 7 2 7 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . M e t h o d I n v o c a t i o n . p r o c e e d ( M e t h o d I n v o c a t i o n . j a v a : 6 0 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n $ V a l i d a t i n g I n v o c a t i o n . p r o c e e d ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 1 3 1 ) < b r   / >         a t   c o m . e p a m . r e p o r t p o r t a l . j u n i t 5 . R e p o r t P o r t a l E x t e n s i o n . i n t e r c e p t T e s t M e t h o d ( R e p o r t P o r t a l E x t e n s i o n . j a v a : 2 7 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r $ R e f l e c t i v e I n t e r c e p t o r C a l l . l a m b d a $ o f V o i d M e t h o d $ 0 ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 1 0 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . l a m b d a $ i n v o k e $ 0 ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 9 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n $ I n t e r c e p t e d I n v o c a t i o n . p r o c e e d ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 1 0 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x t e n s i o n . T i m e o u t E x t e n s i o n . i n t e r c e p t ( T i m e o u t E x t e n s i o n . j a v a : 1 5 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x t e n s i o n . T i m e o u t E x t e n s i o n . i n t e r c e p t T e s t a b l e M e t h o d ( T i m e o u t E x t e n s i o n . j a v a : 1 4 7 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x t e n s i o n . T i m e o u t E x t e n s i o n . i n t e r c e p t T e s t M e t h o d ( T i m e o u t E x t e n s i o n . j a v a : 8 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r $ R e f l e c t i v e I n t e r c e p t o r C a l l . l a m b d a $ o f V o i d M e t h o d $ 0 ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 1 0 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . l a m b d a $ i n v o k e $ 0 ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 9 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n $ I n t e r c e p t e d I n v o c a t i o n . p r o c e e d ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 1 0 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n . p r o c e e d ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 6 4 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n . c h a i n A n d I n v o k e ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 4 5 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n v o c a t i o n I n t e r c e p t o r C h a i n . i n v o k e ( I n v o c a t i o n I n t e r c e p t o r C h a i n . j a v a : 3 7 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . i n v o k e ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 9 2 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . e x e c u t i o n . I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . i n v o k e ( I n t e r c e p t i n g E x e c u t a b l e I n v o k e r . j a v a : 8 6 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . d e s c r i p t o r . T e s t M e t h o d T e s t D e s c r i p t o r . l a m b d a $ i n v o k e T e s t M e t h o d $ 7 ( T e s t M e t h o d T e s t D e s c r i p t o r . j a v a : 2 1 7 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . T h r o w a b l e C o l l e c t o r . e x e c u t e ( T h r o w a b l e C o l l e c t o r . j a v a : 7 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . d e s c r i p t o r . T e s t M e t h o d T e s t D e s c r i p t o r . i n v o k e T e s t M e t h o d ( T e s t M e t h o d T e s t D e s c r i p t o r . j a v a : 2 1 3 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . d e s c r i p t o r . T e s t M e t h o d T e s t D e s c r i p t o r . e x e c u t e ( T e s t M e t h o d T e s t D e s c r i p t o r . j a v a : 1 3 8 ) < b r   / >         a t   o r g . j u n i t . j u p i t e r . e n g i n e . d e s c r i p t o r . T e s t M e t h o d T e s t D e s c r i p t o r . e x e c u t e ( T e s t M e t h o d T e s t D e s c r i p t o r . j a v a : 6 8 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . N o d e T e s t T a s k . l a m b d a $ e x e c u t e R e c u r s i v e l y $ 6 ( N o d e T e s t T a s k . j a v a : 1 5 1 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . T h r o w a b l e C o l l e c t o r . e x e c u t e ( T h r o w a b l e C o l l e c t o r . j a v a : 7 3 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . N o d e T e s t T a s k . l a m b d a $ e x e c u t e R e c u r s i v e l y $ 8 ( N o d e T e s t T a s k . j a v a : 1 4 1 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . N o d e . a r o u n d ( N o d e . j a v a : 1 3 7 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . N o d e T e s t T a s k . l a m b d a $ e x e c u t e R e c u r s i v e l y $ 9 ( N o d e T e s t T a s k . j a v a : 1 3 9 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . T h r o w a b l e C o l l e c t o r . e x e c u t e ( T h r o w a b l e C o l l e c t o r . j a v a : 7 3 ) < b r   / >         a t   o r g . j u n i t . p l a t f o r m . e n g i n e . s u p p o r t . h i e r a r c h i c a l . N o d e T e s t T a s k . e x e c u t e R e c u r s i v e l y (NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Это мой объект тела

Код: Выделить всё

package skynet.payloadBodies;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import skynet.DataObject;

@Data
@NoArgsConstructor
@Accessors(chain  = true)
public class NavigationPayloads {
private String folderPath;
private String name;

public static NavigationPayloads postFolders(DataObject dataObject)  {
return new NavigationPayloads()
.setFolderPath("/")
.setName("PolicyTest_" + dataObject.getSuffix());
}
}
Тот же запрос отлично работает с Postman

Код: Выделить всё

POST /navigation/api/v1/folders HTTP/1.1
Content-Type: application/vnd.thermofisher.luna.folder
Authorization: Bearer *
User-Agent: PostmanRuntime/7.42.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 062bf4a4-469e-4ccf-af7c-dc482161ab6f
Host: api.ardia.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 72

{
"folderPath": "/",
"name": "PostmanPolicyTest_1729162467"
}

HTTP/1.1 201 Created
Date: Thu, 17 Oct 2024 10:54:32 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: hyperbridge=fc94b655c37ed7cc316b3abb318cf9bf|93f8858af05e8e62dacfde25942733cc; Path=/navigation; Secure; HttpOnly
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Robots-Tag: noindex, nofollow
Referrer-Policy: same-origin
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'unsafe-inline' 'unsafe-eval' https: http: data: ws: blob:

{"id":"d615a3ee-fa95-4348-b037-23840e46bdcd","parentId":"23bdde0d-e8a8-451d-81d1-6eecbfe4b6b6","path":"/PostmanPolicyTest_1729162467","state":"Active","type":"application/vnd.thermofisher.luna.folder","updatedOn":"2024-10-17T10:54:32.2704818Z","updatedBy":"apitestautomation","rLink":"folders/d615a3ee-fa95-4348-b037-23840e46bdcd","rLink2":"folders/d615a3ee-fa95-4348-b037-23840e46bdcd"}
Я пытался это сделать

Код: Выделить всё

serializedBody = objectMapper.writeValueAsString(body);
Но затем я получаю сообщение об ошибке

Код: Выделить всё

java.lang.ClassCastException: class java.lang.String cannot be cast to class [B (java.lang.String and [B are in module java.base of loader 'bootstrap')
Когда я попытался отправить тело в байтах, я получил ответ 415 Unsupported Media Type

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»