怎样写好Web自动化测试框架
首先需要解决以下几个问题
1. 登录登出如何衔接
Web自动化其实就是模拟现实中的操作,通过点击页面上的元素、输入数据等来实现页面的跳转和数据的正确性验证,通常情况下Web自动化由很多自动化用例组成,每个用例即可单独运行,也可与其他用例一起连贯运行。这时,如果用例需要用户登录才能执行,那么在运行前就需要校验是否登录,如果登录即可继续运行,如果没有登录必须先登录。
2. 页面之间的衔接
还有一种情形是,有一个用例是专门针对页面3的,但在到达页面3前必须先经过页面1和页面2,这时,在运行这条用例前就需要校验当前页面是否是页面3(通常通过特征元素来判断),如果是页面3那么用例即可继续执行,否则需要先进到页面1和页面2,该用例才能继续运行。
3. 页面元素采用何种方式定位
通常是由具体的产品来决定的,常见的定位方式有id, name, CSS, Xpath,即可使用单一的定位方式,也可混合使用。CSS和Xpath更是提供了丰富的函数,几乎可以定位到页面上任何一个元素。
4. 元素和页面的等待
在运行自动化用例时,诸多因素会影响页面元素的加载时长,如果没有设置合适的等待时间,运行自动化时很可能因为找不到元素或元素不可见而失败。Webdirver里提供了丰富的等待函数可供我们使用。
5. 数据正确性的验证
自动化最重要的检查点除了检查页面的跳转就是数据的正确验证,通过什么样的方式来校验数据的正确性需要根据具体的产品来判断,例如返回的Json数据,页面上的数据显示等。
6. 测试报告
自动化运行完成后,需不要打印测试报告,报告以什么样的方式呈现(HTML, TXT等),运行完后是否需要自动在浏览器打开,报告里需要哪些信息,错误的用例需要不需要截图。
在上述问题解决后,就可以着手下面具体的细节:
1. 采用何种编程语言
例如: Java, Python, JavaScript, Ruby等
2. 使用什么自动化工具
例如: Selenium, Webdriver, QTP等
3. 有哪些现有的,好的概念和方式可供我们使用
例如: PageObject, PageFactory等
4. 对页面上共有的组件,能否提取出来
例如: 下拉框, 滚动条, 复选框, 单选框, 下拉列表, 表格等
5. 需要哪些额外的脚本语言和工具
例如: ant, maven, TestNG等
最后,分析罗列的解决方案,比较优缺点,选择最佳的组合来编写自动化框架
怎样写好Web自动化用例
1. 良好的编程习惯
以Java为例,包名、类名、方法名等都有相应的标准,遵循这些标准不仅能提高我们的书写效率,同时写出的自动化用例也易于阅读和调试。
2. 加注释
加注释,让别人能很好的理解你的用例。
3. 逻辑清晰、容易阅读
上一步操作跟下一步操作之间必要有一定的逻辑联系,且与实际的操作相同,这样的好处是出问题时能很快定位到出错点。
4. 尽量减少重复代码
这,不用赘述。