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

异步调用的定义:一个可以无需等待被调用函数的返回值就让操作继续进行的方法,
举一个形象的例子就是:领导给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. 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'

    1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select count(t.id),t.`createUserId` fr ...

  2. (十二)java嵌套类和内部类

    嵌套类和内部类:在一个类里边定义的类叫做嵌套类,其中没有static修饰的嵌套类是我们通常说的内部类,而被static修饰的嵌套类不常用.有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没 ...

  3. Dijkstra算法与Bellman - Ford算法示例(源自网上大牛的博客)【图论】

    题意:题目大意:有N个点,给出从a点到b点的距离,当然a和b是互相可以抵达的,问从1到n的最短距离 poj2387 Description Bessie is out in the field and ...

  4. eclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded

    在使用Eclipse的Build Project功能时,提示以下错误: An internal error occurred during: "Build Project". GC ...

  5. 使用定时器限制点击按钮发送短信(附源码)--JavaScript小案例

    不说多哈,有注释哦,直接贴代码了哈,有疑问请追评呢…… 1.禁用按钮: this.disabled = "disabled"(this指按钮)或: this.disabled = ...

  6. RobotFramework下HttpLibrary库其它关键字

    关键字 使用描述 DELETE 向服务器端发送http delete请求,该请求接收一个参数[ url ],请求的方式和post请求非常类似,示例: DELETE /_utils/config.htm ...

  7. [BZOJ1207] [HNOI2004] 打鼹鼠 (dp)

    Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探 ...

  8. [BZOJ1707] [Usaco2007 Nov] tanning分配防晒霜 (贪心)

    Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜.第i头奶牛适合的最小和最 大的SP ...

  9. 微信小程序之实现页面缩放式侧滑效果

    效果图: 实现原理:点击按钮,往需要动画的div中添加或移除拥有动画效果的class. 由于微信小程序中不能操作page这个根节点,所以,只有用一个div(view)来模仿page根节点. 1.结构 ...

  10. conda创建py27虚拟环境安装theano(anaconda3)

    现在python3已经成为主流的python环境,大部分的package都兼容python3,仍然有一小部分,或者说是某一领域的package需要使用python2.本人现在主要在利用python做机 ...