Java 如何在testng中使用重启框架自动化登录api
我正在尝试在rest-assured框架中使用参数username和password自动化简单的登录API。 下面是我正在使用的代码Java 如何在testng中使用重启框架自动化登录api,java,api,automation,rest-assured,Java,Api,Automation,Rest Assured,我正在尝试在rest-assured框架中使用参数username和password自动化简单的登录API。 下面是我正在使用的代码 @BeforeClass public void setBaseUri() { RestAssured.baseURI = "https://XXXXXXXX.com"; } @Test public void postString () { given().params("passwo
@BeforeClass
public void setBaseUri() {
RestAssured.baseURI = "https://XXXXXXXX.com";
}
@Test
public void postString () {
given().params("password","XXXX").
.params("username","XXXX")
.when ()
.contentType (ContentType.JSON)
.post ("/login")
.then().statusCode(200).log().all();
}
检查状态代码200并记录响应。当我运行测试时,它显示错误415不支持的媒体。我不确定这段代码是否会自动登录api。我试着在互联网上搜索,但没有任何效果
非常感谢您的帮助。如果您将用户名和密码作为json发送,则需要使用
.body()
方法。像这样的方法应该会奏效:
@Test
public void postString () {
Map<String, Object> jsonAsMap = new HashMap<>();
jsonAsMap.put("username", "hello");
jsonAsMap.put("password", "w0rld!");
given().
contentType("application/json").
body(jsonAsMap).
when().
post("/login").
.then().statusCode(200).log().all();
}
@测试
公共void postString(){
Map jsonAsMap=newhashmap();
jsonAsMap.put(“用户名”,“你好”);
jsonAsMap.put(“密码”,“w0rld!”);
给定()。
contentType(“应用程序/json”)。
正文(jsonAsMap)。
when()。
post(“/login”)。
.then().statusCode(200.log().all();
}
在上面的示例中,当您指定内容类型时,Rest Assured将尝试将请求主体转换为json。还有其他方法可以设置json POST正文。特别是对我来说,我序列化了项目中的对象,而不是像上面的例子那样创建hashmaps。
您最初所做的是将用户名和密码设置为查询字符串。用户名和密码是否作为json发送?是。它作为json[com.sun.istack.internal.SAXException2:无法将类型“java.util.HashMap”封送为元素,因为它缺少@XmlRootElement注释]这是我遇到的错误您使用的是什么版本的rest assured?rest assured 3.0.3