学习笔记一:自动化基础概念
1、自动化工具(相当于手机的CPU)
主流的测试工具:
- Selenium(webdriver): https://blog.csdn.net/qq_44326412/article/details/107825851
- Puppeteer:https://blog.csdn.net/mengxiangxingdong/article/details/99237204
- Cypress:https://blog.csdn.net/angl129/article/details/90696251
- Playwright:https://blog.csdn.net/lb245557472/article/details/111572119
注:以上工具只是提供了一套操作浏览器的API,如:打开页面、输入、点击、截图、上传等
2、自动化框架(相当于具体的手机)
自动化框架提供一整套测试方案,如:
- 用例的概念
- 执行规则
- 执行的结果,生成报告
- 设计模式
主流的测试框架:
- Robot framework(集成了SeleniumLibrary)
- SeleniumBase(基于Selenium)
- Seldom(基于Selenium)
3、selenium的工作原理
selenium1.0=selenium RC+selenium IDE+selenium Grid
- selenium IDE:集成在Firefox浏览器的插件
- selenium Grid:用来做分布式的
- selenium RC(Remote Control):被集成在一个selenium service -XXX.jar
- selenium RC工作方式:python(selenium)--->selenium server(监听4444端口)--->浏览器执行
selenium2.0=selenium1.0+webdriver
- webdriver工作方式:python(selenium)--->Chromedriver驱动器--->浏览器执行
- python(selenium默认自带Firefox驱动)--->浏览器执行
selenium3.0=selenium2.0-selenium RC
- webdriver工作方式:python(selenium)--->Chromedriver驱动器--->浏览器执行
- python(selenium-Firefox驱动被剥离了)--->浏览器执行
各个浏览器驱动对应名称:
- geckodriver(Firefox)
- Chromedriver(Chrome)
- IEDriverServer(IE)
- operadriver(Opera)
- phantomjs(PhantomJS)
- MicrosoftWebDriver(Edge)
4、自动化测试核心是学三个技术:
- 编程语言:Python、Java...
- selenium、Appium、request
- 单元测试框架:UnitTest、Pytest
- 扩展:集成报告,自动发送邮件、po设计模式、数据驱动
环境安装
- 安装 python(推荐3.8)
- pip install Selenium
- pip show Selenium
D:\software\Python39:项目的根目录
D:\software\Python39\Scripts:可执行文件
D:\software\Python39\Lib\site-packages:存放所有安装的第三方库和框架
- 编辑器
通用的编写文本的工具:记事本
代码编辑器:sublime text\vscode
- IDE:集成开发工具
eclipse、pycharm(不要用虚拟环境)
- 下载浏览器驱动器(需要配置存放驱动的路径的环境变量,然后重启IDE):http://www.testclass.net/selenium_python/selenium3-browser-driver
5、基本概念:
-
库是由代码集合成的一个产品,供程序员调用。面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库。解决的是一个问题点,如:time、selenium、requests等
-
框架是为解决一个或一类问题而开发的产品,用户一般只需要使用框架提供的类或函数,即可实现全部功能。解决一个问题面,如:django、unittest等
-
工具跟框架类似,但是它屏蔽了底层的代码,一般提供单独的操作界面供用户操作。解决一个问题面,如:selenium IDE等
6、自动化测试模型
-
线性测试
一系列的顺序操作,每个测试脚本相对独立,且不产生其他依赖与调用。简单来说就是单纯的来模拟用户完整的操作场景。 -
模块化与类库 把重复的操作独立成封装成公共模块,当用例执行过程中需要用到这一模块操作时则被调用,这样就最大限度地消除了重复,从而提高测试用例的可维护性。
-
数据驱动测试 数据的改变影响结果的改变。例如登录不同的用户,登录操作一致,但是用户不一致,则可以使用数据驱动,如ddt,parameterized库
-
关键字驱动测试 把操作封装成关键字,调用关键字实现操作。如robotframework

浙公网安备 33010602011771号