这两天学习已一点web自动化测试,总结一下。
一、自动化测试代码可视化角度分类
黑盒测试(功能测试)、灰盒测试(接口测试)、白盒测试(单元测试)
二、自动化测试优缺点
优点:1、较少的时间运行更多的测试用例 2、自动化脚本可重复运行 3、减少人为的错误 4、测试数据可存储,不需要重复造测试数据
缺点:1、不能取代手工测试 2、没有手工测试发现的bug多 3、对测试人员技术要求较高
三、自动化测试方向分类
1、Web(UI)自动化测试 2、接口自动化测试 3、移动(APP)自动化测试 4、单元测试
四、主流自动化测试分类
1、web自动:Selenium、robot framework(基于Python的可扩展的以关键字驱动的测试自动化框架)
2、APP端:Appium、Monkeyrunner、UIautomation
3、云测平台:Testin、Testbird
4、接口自动化:Jmeter、Postman、HTTPunit、RESTClient
5、性能测试:Jmeter、LoadRunner
五、Selenium
什么Web项目适合自动化测试?
1、需求变动不频繁 2、项目周期长 3、需要回归的项目
这两天主要学习了selenium,下面总结一下selenium相关内容
1、Selenium是一个用于web应用程序测试的工具,具有开源、跨平台、多语言、多浏览器进行、成熟稳定、功能强大等特点。
2、Selenium IDE是一个Firefox插件,用于记录和播放用户与浏览器的交互(录制web操作脚本),可在火狐浏览器附加组件直接安装

Selenium IDE使用介绍

简单介绍一下,鼠标放上图标上均有英文解释,各位可自行探索

下面是执行测试脚本的动图

3、webdriver(总之是一套API就对了,敲代码的时候要用他)
一种用于web应用程序的自动化测试工具,提供了一套友好的API,不依赖于任何测试框架的一套类库,除了必要的浏览器驱动
4、Selenium安装与使用
首先要确保装了Python,前面的文章写过不再写了,通过命令行使用pip命令安装Selenium
原本我跟着教学视频安装2.48.0了,但是后面发现跟我的火狐浏览器最新版不兼容,后面卸载安装了最新版本


5、安装火狐webdriver驱动
安装好之后兴冲冲的跟着视频敲代码了,发现webdriver下面还红,一运行却是第二行报错,百度之后发现是没有装火狐的webdriver驱动,以下网址下载:https://github.com/mozilla/geckodriver/releases

下载下来之后解压,将解压后的exe文件放在python根目录下的Script目录下即可

报错解决之后webdriver还红,允许之后又报错,各种百度,有一招解决了,新建项目打开Project Interpreter,勾上下面俩勾,虽然不知道是干啥的,感觉意思应该是自动拿到我安装的各种包吧,反正不报错就行了

6、又兴冲冲地敲代码,这下改装的包都装了,总改没问题了吧,还是有问题,只自动打开了火狐浏览器主页,没有进入driver.get的网页,下面有一堆报错,于是又各种百度,意思就是selenium版本和火狐版本不兼容(原本我装了2.48.0版本的selenium),一看我的火狐的最新版,于是就想装最新版的selenium试试,结果成功了。


7、打开本地HTML页面输入用户名密码登录,暂停5s后关闭浏览器

六、自动化脚本案例实施步骤总结
1、导包 2、指定浏览器 3、打开项目 4、找到元素(定位元素) 5、操作元素
七、线上网站自动登录、退出

我猜测应该是因为主页面没有退出的按钮,要鼠标放在昵称上面才会弹出来一个含有退出按钮的操作页面,然后复制报错开始百度
Message: Element could not be scrolled into view

经网上查找是因为不可见元素定位原因,某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素,这时候用 is_displayed() 来判断(百度别人的,大致看懂了,反正就是直接找不到他)

加上之后其实还没有退出,应该是跳过了退出的步骤,不满足display条件,5s+5s后直接退出了浏览器。

原本打算定位首页的退出按钮退出,但是操作起来一直报错,最终只能走到鼠标放到昵称上面弹出弹框

打算进入我的页面退出,此页面的退出元素比较好定位


网友评论