自动化测试

网友投稿 716 2022-08-24

自动化测试

自动化测试

什么是自动化测试?

把自己手动执行过程中的一些重复的流程操作抽象出来,固化成框架,让自动化代码沿着固定的路线执行。除了固化的框架,还有些用例需要特殊的配置,即支持用例的个性化定制,在创建任务时带入需要操作的参数,去调用对应的已编写好的python方法,即可实现用例的前置条件环境配置,即用例中的前置条件准备。每次执行都会恢复环境,不干扰下一个用例的执行。

持续集成CI(Continuous Integration)

理解:在编码过程中,要不断的提交代码,提交后可以通过构建、测试等方式对代码进行验证,从而可以尽早的发现问题。其实,持续集成不仅仅是-编码,还可以应用于更多的范围,如文档的编写等等。扩展:持续集成可以理解成一种工作方式。多人共同完成工作,每个人不断阶段性的提交工作成果,阶段性成果被不断的验证,这样可以尽早的在验证阶段,发现工作中的问题。每个阶段性成果,可以理解为一个‘版本’。代码可以版本化,那么扩展下就成了-一切可版本化。敏捷与集成:敏捷与集成是分不开的内容,敏捷如果要能够有效的进行,必然不能缺少持续集成。

为什么自动化无法满足持续集成的需求:

稳定性

自动化的质量欠佳,在没有bug的情况下,很难达到100%的成功率在异常处理方面不足所依赖的外界环境的不稳定,增加了自动化的不稳定性与其他测试共享资源增加资源冲突概率自动化没有分支功能,针对新版本修改后,无法继续运行老版本

快速验证

测试内容本身耗时依赖外部环境,而外部环境未自动化测试技术手段不足导致测试方式耗时功能可测试性不好导致测试难度大为屏蔽不稳定因素,简单的sleep自动化不稳定导致执行结果的分析时间长无法并发测试

为什么无法做到并发测试?

被测试环境有限测试用例无法并发测试用例的相关名称固定,导致并发测试会冲突执行引擎无法并发/分布式测试

规范:

新增编写的测试用例提交标准:需要在自己的分支将整体用例连续跑5遍,且5遍的成功率均为100%。整体用例执行必须在30min内完成(不包含被测试环境部署的时间)bug阻塞持续集成的必须1天内解决持续集成中自动化的成功率在95%以上,才算通过,才能给其他人升级。如果一定要sleep,而无条件检查的timeout机制,必须要在代码中备注Note(xxx),并写明为什么无法条件检查

coding_guide

对于测试数据/配置:

-假定没有现在的测试数据-测试用例是独立的(自己准备测试数据)-每个测试结束后,需要清理测试数据-随着环境变化而变化的值应该在配置文件中配置

异常处理:

-每个测试用例中,需要通过异常或者日志来详细的说明异常情况-通常情况下,第一个错误是最重要的信息-在测试用例中,尽量避免使用try/except以及finally,这样当额外的操作导致了其他异常时会导致原有的异常被替换-在测试用例中,直接让异常抛出就可以了。总的来说,这样是一种好的解决办法-尽量避免使用会掩盖原始数据的异常处理结构,如果确实需要使用try,至少需要保证原有的异常被记录在日志里。当异常被记录了,通常需要raise一个相同的或者不同的异常-使用unittest框架提供的self.assert方法,从而可以尽早的显示失败-避免单独使用 `self.fail`,因为它的堆栈会将`self.fail`那一行作为原始错误。-在断言时避免使用复杂的布尔表达式。没有`msg`参数的`self.assertTrue`或者`self.assertFalse`只会说明布尔值是多少,并不会知道表达式的值代表什么,`msg`参数可以包含更多的信息。-大部分断言方法可以默认包含额外信息。例如,`self.assertIn`可以包含整个集合。

测试用例是独立的

每个test_method必须是可以独立调用,不能依赖于其他的test_method或者依赖于test_method的顺序测试用例可以依赖于公共的资源初始化、工具,比如测试资源等等。如果仅选择一个test_method,这些工具也必须能够正常

反面测试

新增加的negative test应该使用negative test框架。jsonschema中定义了请求的属性。测试类必须自动生成不符合给定的接口描述的测试场景。所有的反面测试应该增加在一个单独的反面测试文件中。如果被测试的特定资源的文件不存在,那么应该增加1个新的测试文件。

对于自动化测试

环境相关:

不能依赖外部环境、第三方环境,例如icsci服务器、ftp服务器等。此类用例不进行自动化实现

测试点/内容:

单个测试用例的测试点必须单一,并且执行完成后清理环境

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于未来编程发展趋势的九大预测(编程语言未来发展趋势)
下一篇:Ubuntu系统安装后的基础配置操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~