学习笔记一:自动化基础概念

1、自动化工具(相当于手机的CPU)

主流的测试工具:

  1. Selenium(webdriver): https://blog.csdn.net/qq_44326412/article/details/107825851
  2. Puppeteer:https://blog.csdn.net/mengxiangxingdong/article/details/99237204
  3. Cypress:https://blog.csdn.net/angl129/article/details/90696251
  4. Playwright:https://blog.csdn.net/lb245557472/article/details/111572119

注:以上工具只是提供了一套操作浏览器的API,如:打开页面、输入、点击、截图、上传等

2、自动化框架(相当于具体的手机)

自动化框架提供一整套测试方案,如:

  • 用例的概念
  • 执行规则
  • 执行的结果,生成报告
  • 设计模式

主流的测试框架:

  1. Robot framework(集成了SeleniumLibrary)
  2. SeleniumBase(基于Selenium)
  3. 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(不要用虚拟环境)

5、基本概念:

  • 库是由代码集合成的一个产品,供程序员调用。面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库。解决的是一个问题点,如:time、selenium、requests等

  • 框架是为解决一个或一类问题而开发的产品,用户一般只需要使用框架提供的类或函数,即可实现全部功能。解决一个问题面,如:django、unittest等

  • 工具跟框架类似,但是它屏蔽了底层的代码,一般提供单独的操作界面供用户操作。解决一个问题面,如:selenium IDE等

6、自动化测试模型

    • 线性测试
      一系列的顺序操作,每个测试脚本相对独立,且不产生其他依赖与调用。简单来说就是单纯的来模拟用户完整的操作场景。

    • 模块化与类库 把重复的操作独立成封装成公共模块,当用例执行过程中需要用到这一模块操作时则被调用,这样就最大限度地消除了重复,从而提高测试用例的可维护性。

    • 数据驱动测试 数据的改变影响结果的改变。例如登录不同的用户,登录操作一致,但是用户不一致,则可以使用数据驱动,如ddt,parameterized库

    • 关键字驱动测试 把操作封装成关键字,调用关键字实现操作。如robotframework

posted @ 2021-04-28 16:01  YanaMay  阅读(443)  评论(0)    收藏  举报