1.项目组调研选择自动化工具并开会演示demo案例,咱们主要是演示selenium和robotframework两种。javascript
2.搭建自动化测试框架,在项目中逐步开展自动化。css
3.把该项目的自动化流程、框架固化成文档html
4.推广到公司的其它项目组应用前端
1.编写自动化测试计划java
2.设计自动化测试用例python
3.编写自动化测试框架和脚本web
4.调试并维护脚本面试
5.无人值守测试数据库
6.后期脚本维护(添加用例、开发更新版本)浏览器
1.用例是自动化测试工程师本身设计的,通常刚开始已基本业务流程为主(登陆--完成一个业务--退出)
2.从系统测试用例中进行筛选或由业务工程师提供
上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知
很少,由于以前项目组是把已经测试经过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试经过的功能在新版本更新后没有问题。
引用自动化测试以后,能代替大量繁琐的回归测试工做,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试通常是对稳定下来的功能进行自动化,保证不会由于产品的更新致使以前稳定下来的功能出现BUG
有误报过,有时候自动化测试报告中显示发现了bug,实际去经过手工测试去确认又不存在该bug。
误报缘由通常是:
1.元素定位不稳定,须要尽可能提升脚本的稳定性;
2.开发更新了页面可是测试没有及时更新维护!
1.频繁地变动页面,常常要修改页面对象类里面的代码
2.自动化测试偶尔出现过误报
3.自动化测试结果出现覆盖的状况:Jenkins根据时间创建文件夹
4.自动化测试代码维护比较麻烦
5.自动化测试进行数据库对比数据
能够说出如下本身擅长的一种:
1.python+selenium+unittest+htmltestrunner
2.python+selenium+pytest+allure
3. robotframework+Selenium2Library
固然有:咱们使用的群号是:695458161 有不少软件测试和自动化大神解决项目中的问题,还会不定时的发放免费资料。
主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景,经过自动化手段去实现,节约测试时间。由于自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!
这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果,
1.页面加载元素过慢,加等待时间
2.页面有frame框架页,须要先跳转入frame框架再定位
3.可能该元素是动态元素,定位方式要优化,可使用部分元素定位或经过父节点或兄弟节点定位。
4.可能识别了元素,可是不能操做,好比元素不可用,不可写等。须要使用js先把前置的操做完成,
id name classname link_text css xpath
先用driver.switch_to.frame()跳转进去frame,
而后再操做页面元素,
操做完后使用driver.swith_to.default_content()跳转出来
使用driver.switch_to.alert方法先跳转到alert弹出窗口
而后再经过accept点击肯定按钮,经过dismiss点击取消难,经过text()得到弹出窗口的文本。
这个多窗口之间跳转处理,咱们在项目中也常常遇到。就是,当你点击一个连接,这个连接会在一个新的tab打开,而后你接下来要在新tab打开的页面查找元素,
1.咱们在点击连接前使用driver.current_window_handle得到当前窗口句柄。
2.再点击连接。点击后经过driver.window_handles得到全部窗口的句柄,
3.而后再循环找到新窗口的句柄,而后再经过driver.switch_to.window()方法跳转到新的窗口。
定位元素后:分别经过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。
在Selenium中有一个叫Select的类,这个类支持对下拉菜单进行操做。使用方法以下:
1.定位元素
2.把定位的元素转化成Select对象。
sel = Select(定位的元素对象)
3.经过下标或者值或者文本选中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);
首先要分析当前网页试用日历插件的前端代码,看看能不能经过元素定位,点击日期实现,若是不能,可能须要借助javascript。还有些日历控件一个文本输入框,能够直接sendKeys()方法来实现传入一个时间的数据。
常见的selenium异常有这些:
NoSuchElementException:没有该元素异常
TimeoutException : 超时异常
ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常
简单来讲,两个均可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭所有浏览器tab页面,并退出浏览器session。知道这两个区别,咱们就知道quit通常用在结束测试以前的操做,close用在执行用例过程当中关闭某一个页面的操做。
在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,通常结合try/except捕获异常时使用,进行错误截图。
定位元素后,直接使用send_keys()方法设置就行,参数为须要上传的文件的路径。
1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒事后,再执行后续的代码。建议少用。
2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特色是必须等待整个页面加载完成。
3.WebDriverWait(显式等待)一般是咱们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码
固然能够,我写的用例能够在在IE,火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法,分别传入一个浏览器的字符串,若是传入IE就使用IE,若是传入FireFox就使用FireFox,若是传入Chrome就使用Chrome浏览器,而且使用什么浏览器能够在总的ini配置文件中进行配置。须要注意的是每一个浏览器使用的驱动不同。
PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当作一个对象,页面的元素和元素之间操做方法就是页面对象的属性和行为,PO模式通常使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。
这个问得最多,甚至有不少公司直接卸载招聘要求中
固然能够,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。而后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。
咱们有本身的软件测试技术群:695458161:若是有任何软件测试方面的疑问,关于软件测试、接口测试、自动化测试、性能测试、面试经验等均可以在群里解决,群里有同行大神一块儿交流技术。共同进步,一块儿成长!
做者:诸葛
出处:https://www.cnblogs.com/csmashang/p/12728916.html
原创不易,欢迎转载,但未经做者赞成请保留此段声明,并在文章页面明显位置给出原文连接。