1、为什么要做自动化测试?
(1)测试工作的特点(重复性劳动),非常适合做自动化;
(2)项目模式的改变(从传统瀑布型到快速迭代、敏捷开发),要求必须自动化;
(3)科学技术的发展(开源自动化框架的进步),推动了自动化测试在项目中的应用;
2、自动化测试是万能的吗?
自动化测试的优点:
• 自动化测试可以替代重复性的操作,测试工程师可以将更多时间放到用例设计等需要思考的事物上面;
• 自动化测试可以提升回归测试的效率;
• 自动化测试可以无人值守运行;
• 自动化测试可以保证每次测试执行操作及验证的一致性,避免人为疏漏;
自动化测试的缺点:
• 自动化测试开发成本较高;
• 自动化测试比人工测试脆弱,无法应对UI界面的变化;
3、什么场景适合做自动化测试?
(1)稳定的系统或功能适合做自动化测试;
(2)冒烟测试;
(3)重点功能全面测试;
(4)缺陷回归测试;
4、自动化测试开展原则?
(1)UI自动化和接口自动化结合来做;
(2)不要盲目追求自动化对case的覆盖率;
(3)自动化测试要兼顾稳定性、可扩展性、可维护性;
5、自动化测试脚本思路?
(1)定位页面元素;
(2)对元素执行动作;
(3)自动检查结果;
(4)自动输出测试报告;
(5)将测试结果及时通知给相关人;
Selenium的原理是什么?
selenium的原理涉及到3个部分,分别是
- 浏览器
- driver: 一般我们都会下载driver
- client: 也就是我们写的代码
client其实并不知道浏览器是怎么工作的,但是driver知道,在selenium启动以后,driver其实充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver,driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client。这就是selenium工作的大致原理。
webdriver的协议是什么?
client与driver之间的约定,无论client是使用java实现还是c#实现,只要通过这个约定,client就可以准确的告诉drier它要做什么以及怎么做。
webdriver协议本身是http协议,数据传输使用json。
这里有webdriver协议的所有endpoint,稍微看一眼就知道这些endpoints涵盖了selenium的所有功能。
启动浏览器的时候用到的是哪个webdriver协议?
New Session,如果创建成功,返回sessionId和capabilities。