在我们测试异步调用前,我们首先弄清楚异步调用到底是什么?

异步调用的定义:一个可以无需等待被调用函数的返回值就让操作继续进行的方法,
举一个形象的例子就是:领导给A分配了一个任务, 然后领导就干其他事了,而不是一直盯着A把任务做完, 等待一段时间后, A自动给领导汇报任务的完成情况。

异步调用有什么好处呢, 1、系统在处理一些比较耗时的任务,放在非主线程中执行, 主线程可以接着做其他事情,只是定时去收集任务的完成状态

下面我们就分析一个具体的实例, 美团团购电影票, 这个操作虽然只是在美团上面操作,但是实际涉及到两个系统, 美团 和电影院的售票, 因为虽然我们在美团下单,最后美团会把订单信息传递到具体电影院的售票系统, 电影院完成下单后,美团轮训订单是否已经生成,如果生成就告知用户购票成功, 如果不生成,就购票失败。

从上面的图片也可以看出美团向电影院下单的过程是一个异步的过程,但是在我们实际体验上就感觉下单时一气呵成的,是因为我们在使用美团购买电影票时,我们购票是一个连贯的操作,而且网速很好,我们感觉不到延迟,提交下单信息后,很快就可以得到下单的结果, 但是作为一个测试人员,我们仅仅测试正常的场景是不够的,我还要测试一些异常的场景:

1、比如提交下单信息成功后,电影院生成了订单信息,但是由于网络原因轮询不到下单结果,这种情况应该怎么处理?  美团不会一直轮询,超过一定时间后就不轮询,告知用户下单失败,然后给用户退款,然后向电影院售票系统提交取消对应订单的请求

我们怎么样找到异步调用异常的场景的呢?首先我们需要了解一个业务的执行流程, 然后画出流程图,找出其中哪些步骤修改了数据, 然后再修改数据后的步骤如果失败,系统应该怎么处理, 这样我们基本上就不会遗漏重要的异常场景。

WEB页面异步调用场景测试的更多相关文章

  1. [转]Calling Web Service Functions Asynchronously from a Web Page 异步调用WebServices

    本文转自:http://www.codeproject.com/Articles/70441/Calling-Web-Service-Functions-Asynchronously-from Ove ...

  2. 【问题记录】— web页面调用本地程序

    起因: 最近由于项目需要在web页面中调用本地部署的exe程序:进而对该功能实现做了对应了解:以及存在的问题进行记录. 要实现该功能就不得不说浏览器自定义协议:解决办法:那么它是什么呢? 浏览器自定义 ...

  3. SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂)

    SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂) Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自 ...

  4. QQ音乐Android客户端Web页面通用性能优化实践

    QQ音乐 Android 客户端的 Web 页面日均 PV 达到千万量级,然而页面的打开耗时与 Native 页面相距甚远,需要系统性优化.本文将介绍 QQ 音乐 Android 客户端在进行 Web ...

  5. 006-优化web请求二-应用缓存、异步调用【Future、ListenableFuture、CompletableFuture】、ETag、WebSocket【SockJS、Stomp】

    四.应用缓存 使用spring应用缓存.使用方式:使用@EnableCache注解激活Spring的缓存功能,需要创建一个CacheManager来处理缓存.如使用一个内存缓存示例 package c ...

  6. mvc路由引起异步调用web服务的问题

    从一篇blog得知使用脚本可以异步调用Web服务,觉得很新鲜,因为自己很少用到Web服务,所以决定写一写看看什么效果. 首先在UI项目(我使用的是MVC4.0)里创建一个Web服务. 添加Web服务后 ...

  7. 序列化和反序列化,异步调用web/wcf/函数

    //xml序列化 public static string Seria(DataSet ds) { XmlSerializer serializer = new XmlSerializer(typeo ...

  8. php中调用这个功能可以在web页面中显示hello world这个经典单词

    php程序写的时间长了,自然对他所提供的功能了如指掌,他所提供的一大堆功能,真是觉得很好用,但有时候会发现php也缺少一些功能,自己总是会产生为php添加一些自定义的功能的想法.久而久之,终于今天憋不 ...

  9. Web开发——前后台异步调用

    做web开发,最头疼的.最核心的部分或许就应该是前后台交互了,之前一直没弄明白,每次都不知道该如何去做.最近由于开发需要,加上有些朋友问起这个问题,不得不再次摸索前后台交互的方法.功夫不负有心人,总算 ...

随机推荐

  1. printk优先级

    printk是在内核中运行的向控制台输出显示的函数,Linux内核首先在内核空间分配一个静态缓冲区,作为显示用的空间,然后调用sprintf,格式化显示字符串,最后调用tty_write向终端进行信息 ...

  2. setsockopt()用法(参数详细说明) recv、send的超时处理

    源于recv send 阻塞和非阻塞 int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen); s(套 ...

  3. Java 第三章 选择结构

    第三章   选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...

  4. 【BZOJ3924】幻想乡战略游戏(动态点分治)

    [BZOJ3924]幻想乡战略游戏(动态点分治) 题面 权限题...(穷死我了) 洛谷 题解 考虑不修改 发现一个贪心的做法 假设当前放在当前位置 如果它有一个子树的兵的总数大于总数的一半 那么,放到 ...

  5. [HAOI2008]木棍分割

    题目大意 网址:https://daniu.luogu.org/problemnew/show/P2511 题目大意: 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连 ...

  6. mybatise插入返回主键ID

    之前遇到过一次解决了,结果这次又搞了半天,在这里记录一下吧. <insert id="insertUser" useGeneratedKeys="true" ...

  7. 获取SHA1

    进入命令行,依次输入: 此处密钥默认为android.

  8. RPC vs RESTful

    在微服务中,使用什么协议来构建服务体系,一直是个热门话题. 争论的焦点集中在两个候选技术: (binary) RPC or Restful. 以Apache Thrift为代表的二进制RPC,支持多种 ...

  9. nodejs辅助前台开发系列(1) 搭建简单HTML开发环境

    搭建简单的html开发环境一般需要解决两个问题: 文本编辑器 WebServer集成 在文本编辑器选择上,VS Code 无疑是一匹黑马,谁用谁知道.WebServer集成nodejs对前端来说最为友 ...

  10. 简单的同步Socket程序服务端

    首先,Socket是.Net提供的 System.Net.Sockets命名空间的Scoket类为网络通信提供了一套丰富的方法和属性 服务器按照Socket的基本流程 先创建Socket 在用Bind ...