前言
以下都是基于python+selenium IDE的自动化测试。
提示:以下是本篇文章正文内容,下面案例可供参考
一、前提准备
下载Python和Selenium IDE,python下载地址Python,安装教程,selenium ide需要在谷歌浏览器扩展程序中添加(需要先在谷歌应用商店进行下载)
二、使用步骤
1.打开Selenium IDE进行自动化测试脚本录制
1.1新建一个测试项目
注意:项目名称最好不要以中文命名
1.2录制自动化测试脚本
在地址栏输入要测试网页的网址
点击录制按钮
会打开输入的网址界面,并出现左下角的录制标记
对界面进行操作,操作会保存到selenium ide插件中
选择Python pytest,点击EXPORT导出测试脚本
2.导出脚本后操作
打开生成的.py文件,下载 pytest测试框架
pip install pytest
如果下载报错可用
pip3 install pytest
下载测试报告插件
pip install pytest-html
运行测试脚本
pytest test_search.py
运行测试脚本并生成测试报告
pytest test_search.py --html=report/report.html
运行测试脚本并生成测试报告,pytest后面可以加-q简化结果输出,-x有一条测试用例失败则,都失败, -s 可让print输出内容显示出来
pytest -q test_search.py --html=report/report.html
总结
注意:考虑到运行的时间问题,以及流程的步骤问题。所以我们在实际执行自动化测试的时候,是需要设置有一个缓冲时间的。如果不预留缓冲时间,则运行自动化是非常容易出错的。
1.强制等待
通过导入time中的sleep,等待X秒之后,再继续执行后续代码,无所谓当前处于什么阶段,执行了什么操作,后续是否已经准备就绪,反正就是要等X秒,一般都是在刚开始学习自动化的过程中进行使用,基本不在实际情况下使用
缺点:无法精准把握等待的时间(无法判定是否达到可以下一步进行的操作/无法判定页面是否加载完成),如果一直使用强制等待,会严重影响整个自动化运行的效率,因为会浪费大量的时间
优点:简单使用,一般在调试的时候有奇效
time.sleep(1)
2.隐式等待
语句为:driver.implicitly_wait(10)
设置一个隐形的等待,设置最长的等待时间,如果在这个时间内完成了页面的内容全部加载,则进行下一步,否则一直等待时间结束,再进行下一步
缺点:必须要等待页面全部加载完成,才可以进行下一步,有些时候,页面中特定的元素已经被加载出来了。但是页面本身还是没有加载完。应用度上不是太灵活
优点:对整个WebDriver的周期都能够起到作用,所以只需要设置一次