51Testing软件测试论坛

标题: 探索将xxl-job与apollo融入自动化框架中——前言 [打印本页]

作者: pyqone    时间: 2021-3-13 18:32
标题: 探索将xxl-job与apollo融入自动化框架中——前言
前言
在编写自动化测试脚本时,我更倾向于通过编写代码的形式完成自动化的创作,而不是使用别人为我写好的自动化测试软件来做自动化测试。我认为,编写自动化测试脚本是一个创作的过程,既然是创作,难免会需要用到只满足你的需求的工具,而这样的个性化工具一般很少会被别人写到软件作为方法供你使用。所以,我更愿意使用代码的形式对自动化测试脚本进行开发,这样才能使自动化测试脚本能适应更多的环境,覆盖更多的用例。
但使用代码的形式编写自动化测试脚本,那就离不开框架的支持,否则我们将很难去运行和维护自动化脚本。在很长的一段时间内,我一直认为自动化测试框架应该是java+Maven+TestNG+Selenium+jenkins,所以我不断地朝着这个目标学习,直到我在实际编写脚本时发现了问题后,我便对这个框架有了怀疑。
参数化问题
我们在编写脚本时,难免会出现一些需要参数化的内容,即需要写死一部分内容,而这一部分的内容又并非完全写死,例如登录待测网站的用户名和密码,亦或是待测站点url。这一部分内容看似是写死的,但实际上,我们需要区分测试环境和生产环境,若只用一套参数,则必然会导致产生输入错误。
脚本调用问题
在传统的脚本运行过程只能按照预设的调度顺序,依次执行,若想单独执行某一个或某几个方法,则必须要修改代码或配置文件,然后重新进行执行,下次执行时,必须要检查自动化的配置是否正确,确认无误后才能进行执行,这样既不方便。也容易出错。
为避免以上两个问题,我也是想过很多种方法,比如参数使用配置文件进行配置,脚本执行使用几套配置文件来解决,但这样的效果都不太好。直到我在工作中接触到了xxl-job和apollo之后,我发现只要引入这两个工具,上述的问题就都能迎刃而解了。
使用apollo工具可以解决参数问题。工具本身支持参数修改后实时生效,可在不停止运行的情况下修改参数;工具可编辑多套环境的参数,支持环境的分离,可根据启动文件自动选取使用的环境参数避免在脚本中编写选取环境配置文件的代码。
而使用xxl-job工具,可以方便地对脚本进行调度,只要在代码中,使用TestNG的无配置文件执行的方式,便可通过调度中心,方便调度需要执行的模块, 而无需修改代码。工具同样支持环境的分离,以便于区分不同的执行环境。
值得一提的是,上面的工具都是开源的,只要你觉得不符合你的需求,那完全可以自己拉取源码修改后重新进行打包。
结合以上的工具,我认为自动化测试框架应该是这样的:
java+Maven+TestNG+Selenium+spring+xxl-job+apollo





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2