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

异步调用的定义:一个可以无需等待被调用函数的返回值就让操作继续进行的方法,
举一个形象的例子就是:领导给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. Java利用递归算法统计1-6的数组排列组合数

    Java利用递归算法统计1-6的数组排列组合数 1.设计源码 /** * @Title:ArrayCombination.java * @Package:com.you.data * @Descrip ...

  2. Java中对整数格式化

    Java中对整数格式化 1.说明    对整数进行格式化:%[index$][标识][最小宽度]转换方式 2.实例分析 (1)源码 /** * 1. 对整数进行格式化:%[index$][标识][最小 ...

  3. VxWorks操作系统shell命令与调试方法总结

    VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1         Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...

  4. halcon c++ 异常处理

    现象 Halcon导出的C++程序,try catch不到异常.在Halcon下可以正常Catch到异常.  C++代码:try{   tuple_max(hv_Length, &hv_Max ...

  5. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  6. CSS3动画以及animation事件

    1.CSS3动画以及animation事件的定义 animation :name duration timing-function delay iteration-count direction an ...

  7. JavaScript保留关键字2。

    一些不做解释的关键字是在js中预留的东西. abstract 抽象  . arguments  参数 标识符arguments是指向实参对象的引用,实参对象是一个类数组对象. boolean 布尔值. ...

  8. Luogu 3375 【模板】KMP字符串匹配(KMP算法)

    Luogu 3375 [模板]KMP字符串匹配(KMP算法) Description 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来 ...

  9. [HNOI2007]紧急疏散

    二分+网络流判定 首先处理出每个人和门间的距离 二分时间,连边时把每个门拆成mid个,一个人能在mid时间内到达,他也可以在这等一会儿,那么这mid个门之间连边 如果可以在x的时间内到达,那么x~mi ...

  10. log4j输出日志到数据库中

    1.log4j配置 ###----------------- appender:DATABASE_LOG -----------------#指定输出日志的等级和日志输出范围log4j.logger. ...