接上篇文章~
文章总览图#正常用例#前提条件:##############################尽量不要依赖于测试环境的数据,如果没有,就自己造环境。############1.用户已登陆#2.有能够投资的标#如果没有标,则先加标。#通过查询数据库来处理,或者接口的方式加标。#操作系统的数据库,只能查询,不能随便改系统的数据。这个系统不是你实现的,它内部有一些逻辑操作,#你不知道它是怎么做的,会牵连到很多这种关联的数据库,如果不懂表之间的结构关系,你也没有办法做得到,#那就别随便修改数据库里面的数据,可能你一改,这个系统就要出很多bug。#接口发生过程中,会对关联的表结构都去做处理的,你是不知道的,所以只能查询不能改。#你自己的测试数据存在数据库中,可以单独做处理,系统数据就不要去动它。#3.用户有余额可以投资#1.充一个亿#2.接口方式查询下当前用户还有多少钱。不用充值。如果小于用例中投资的金额,那就充值。#步骤#1.在首页选标---不根据标名,根据抢头标。默认第一个标。###标页面-获取一下投资前的用户余额#2.标页面--输入投资金额、点击投资按钮。#3.标页面--点击投资成功的弹出框-查看并激活,进入个人页面。#断言#钱投资后的金额,是不是少了投资的量#个人页面-获取投资后的金额#投资前的金额-投资后的金额=投资金额#投资记录对不对#利息对不对?尽量不要依赖于测试环境的数据,如果没有,就自己造环境。
这个页面除了自动化测试人员使用,还有功能测试人员使用,有人使用,就会创造数据,创造数据就会导致页面发生变化。
不要根据标名,无论哪个标名,都有抢头标按钮,就根据抢头标按钮来选就好了。无论它的标名是谁,就点第一个抢头标按钮就好了,证明你是可以投资的。
随便在哪个环境,无论环境的变化,都是默认第一个标,就基本上所有环境通用了。
每个标,都可点击抢头标的,但是实际项目中,如果这个标已经满了,或者流标了,这个地方是根本不能点击的。
只有允许投标操作的标,才能允许点击这样的按钮。如果它不可以投标,意味着它有一个属性disabled或者别的属性让你不可以点击,或者将它隐藏起来。
所以,大家需要根据业务的逻辑展示来观察下在首页展示的这几个标,到底是能投资的还是不能投资的。
如果是不能够投资的,一定会在页面上体现它的区别。页面上有区别就意味着内容有区别,内容有区别意味着可以通过这样的标识过滤元素,过滤定位表达式。
通过定位表达式,直接锁定可以抢头标的元素。
如果3个标都满了,本质上不会遇到这样的情况。
前提条件,只需想办法准备这个条件就好,这个不是重点,所以这个前提条件不需走页面。步骤是必须走页面的。
Web自动化是模拟用户的一一操作。
其它情况下是永远都看不到查看并激活按钮的。
需要先处理这个弹出框,再进入个人页面。
可用余额:自己可以随便用的钱。
资产总值:包括投资后还没有回本的东西。--这个不用管。
1.投资之前怎么获取?第一种,进入自己的个人页面,进入我的账户。进去后,首先获取自己的个人余额,再去在这个页面进行投资。
点击抢头标,可看到界面有可用余额这个东西。当你观察页面的样式结构,会发现这里也有个可用余额:
2.如果想判断下利息算得对不对?点击我的账户-投资项目。
这种情况下,我要不要去查数据库啊?
这里显示得是83.33,要不要去数据库里查下是不是也是83.33呢?
不需要。
因为客户并不知道你的数据库在哪,客户并不知道你的接口是什么。
如果是做接口层面的自动化测试,那你是需要查数据库的。但是我如果走的是界面版本,我只看页面上是对还是不对。
如果不对,要么是前端开发人员做错了,要不是接口哪里错了。
Web自动化中,断言和步骤必须走页面。但是有时候步骤中有些非常小的点,影响了整个用例的稳定性,那你还是可以用点小手段,把影响稳定性的小问题给过了,不影响大局就行。
没有其它特殊情况,步骤和断言一律走页面。
前提条件:随便走数据库还是接口。
利息83.33走页面,要计算这个利息,要不要把这个断言也放在这个用例当中?
其实要判断下,有没有这个投资记录。
在投资项目当中,我作为一个用户,不但关心我的钱少没少,我还关心我的投资记录有没有。
如果想看第一条投资记录是不是你的,需要首先分析业务,投资项目都是按照时间顺序,最近投资的一条绝对是排在第一位的。
只需要在投资之后,获取第一条投资记录就可以。看下本金对不对,标名对不对,以及时间。
3.这么多的东西,要所有的都断言吗?这个是表格数据的获取,大家可以去获取下。竞标中是不需要管的,只想看下标名对不对,本金对不对,时间对不对,投资记录对不对。
一个用例中断言不能太多。不要指望一条用例把所有该做的断言都做了。比如投资记录对不对,这个可以考虑。因为只要你投资,就一定会生成一条投资记录,而且只是获取下数据就可以了,好像也没有额外的测试用例可以设计。
4.利息对不对,可以用不同的方式来设计?利率不同,利息也不一样。还款的方式不一样,也意味着算的方式不一样。
还款的方式,年利率以及借款时间的不一样,肯定是每种都不一样的。
那你针对利息,是不是有不同的利率设计,那你需要跟它放在一起吗?
不需要同时断言处理。
可以额外设计测试用例,专门针对利息这一项来做。
这一项,你就不需要