Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在testng中使用重启框架自动化登录api_Java_Api_Automation_Rest Assured - Fatal编程技术网

Java 如何在testng中使用重启框架自动化登录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

我正在尝试在rest-assured框架中使用参数username和password自动化简单的登录API。 下面是我正在使用的代码

@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