当前位置: 首页 > 知识库问答 >
问题:

由于响应中的数据丢失,rest assured test间歇性失败

萧星火
2023-03-14

我有一个放心的测试,在这里我将json转换成java对象并在java对象上断言。在response对象中有一个特定的值,我在测试中断言它。当我使用POSTMAN手动运行服务时,我总是在响应中看到参数值,但当我的自动化测试执行时,该值并不总是出现在响应对象中。

我怀疑这可能是服务端没有发送一致响应的问题,但是当手动点击时,该值始终存在。

测试代码:

    @Test
    public void validateResponse() {

        RequestObject.name= "Hello";
        RequestObject.age="20";          

        ResponseObject responseObject= given()
                .contentType(TestData.CONTENT_TYPE_FOR_TEST)
                .body(RequestObject)
                .then()
                .log()
                .everything()
                .when()
                .post(uri)
                .as(ResponseObject.class);    
        assertNotNull(responseObject.name);
        assertNotNull(responseObject.year.age);

我认为我的测试很简单,并不复杂,但是断言断断续续地失败。

关于如何在此基础上进行更多调试,有什么见解吗?

共有1个答案

邵耀
2023-03-14

RequestObject中的字段看起来是静态的,我认为JSON对象映射器很可能不会将结果绑定到静态字段。试着让它们成为非静态的。

 类似资料:
  • 我有一个 Kafka 应用程序,我一直在使用它 kafka-console-consumer.sh 使用消息,如下所示: 它提供了我通过Kafka消费者给Kafka经纪人写的所有消息,没有任何遗漏。 最近,我将该应用程序部署在另一个环境中,因为某些原因,zookeperhost无法访问。所以我使用的是kafka简单的消费者外壳。sh,如下所示: 但是有了这个,我看到很少的消息(大约5000个中有2

  • 在Heroku上打印PDF时,我经常遇到以下错误。当延迟的作业服务器重新尝试打印时,错误会间歇性发生并消失。 错误信息: MESSAGE命令失败(exitstate=139): /app/vendor/bundle/ruby/2.5.0/gems/wkhtmltopdf-heroku-2.12.4.0/bin/wkhtmltopdf-linux-amd64-编码UTF-8-dpi 300-边缘-顶

  • 我有一个用Java编写的REST API,在JBoss下运行。最近我们将JVM从1.6更新到1.7。这开始导致只有我们正在连接的Python客户端出现问题。间歇性地,Python客户端出现握手失败。我们编写了一个非常简单的测试来重现这个问题: 给出以下输出: 第67次调用在这次运行中失败了,但是每次测试运行失败的时间不同。 我们的其他客户端(Java、Groovy和Ruby)工作起来没有任何问题。

  • 我正在使用DSS签署Pdf文档。我需要这些文档有时间戳并启用LTV(启用PAdES LTV)。 我遇到了一些关于撤销数据的问题。 我对这个领域有点陌生,所以请容忍我。 我按照DSS本身提供的说明和演示进行操作,但没有效果。 我已经成功地使用PAdES B和PAdES T签署了Pdf,所以我的TSA服务设置正确。 我遇到的问题是,每次我尝试使用LTV签署Pdf时,都会出现以下错误:“eu.europ

  • 我对使用PrimeFaces 3.4.1和JSF 2.1.6的dataTable有以下问题。第一次加载页面时,数据表中充满了数据库中的数据,但每当在页面上执行操作(编辑链接、数据表排序或过滤)时,数据表就会丢失其数据。DataTable包含来自此类的元素: 在dataTable上执行操作后进行调试时,我们只在envioDatasujeto字段上保留数据,元素上的其他所有数据都会丢失。 这是xhtm

  • docker-compose挂载mysql,mysql老是重启并且数据丢失 docker-compose.yml文件 /home/docker/mysql/conf.d文件 启动方式:docker-compose up -d mysql 希望mysql不重启,数据不会丢失