python+selenium+unittest+ddt的web自动化

一、前景知识

python开发语言的结构有:Django、flask

基于python的web自动化框架有:
python+selenium+unittest+ddt+excel数据驱动+关键字驱动RobotFramework(或POM)+HTMLTestRunner.py(推荐);
python+selenium+pytest+ddt数据驱动+关键字驱动+allure;

整个模型是基于python+selenuim+unittest+ddt数据驱动的web自动化。
入门:python+selenium,常用方式及八大元素定位方式;selenium下拉框、Frame框架、定位一组元素等;Unittest单元测试框架管理测试用例
升化:Unittest,断言详解以及HTMLWEB自动化测试报告生成;基于DDT-EXCEL实现WEB自动化数据驱动模式;基于POM模式+关键字驱动的WEB自动化测试框架的封装
集成:Pytest框架管理测试用例以及数据驱动装饰器@pytest.marks.parametrize+Excel详解;pytest集成allure生成企业级测试报告

自动化测试流程是:框架选择(selenium/RF)、需求分析、计划、测试用例设计(从功能测试中提取冒烟用例或另写一般自动化用例)、无人值守、提交报告、脚本维护

web自动化测试框架
设计模式:POM、关键字驱动模式
用例管理:unittest pytest
数据驱动:ddt、pytest、mark.parameters()
二次封装:excel封装、ini/yaml配置文件封装、数据库封装
日志监控:logger日志收集
异常处理:try except
jenkins:持续集成 无人值守
前端:html、JavaScript
Docker:镜像容器技术
分布式运行:Grid

1)POM(也叫PO)设计模式

pom模式:page object model(页面对象模式),把每个页面当成一个对象来进行分成架构,用于解决线性脚本问题、代码不能重复利用问题、后期维护问题
分三层:
1.基础层base:放selenium原生方法,比如定位元素、跳转框架、处理下拉框等
2.页面对象层po:主要用于放页面的元素和页面的动作
3.测试用例层testcase:存放测试用例及测试数据
页面对象层调用基础层方法,测试用例层调用页面对象层方法

unittest的前后置处理(夹具)
setup在测试用例之前的准备工作
teardown在测试用例之后的扫尾工作

2)数据驱动

目前市场的驱动模式介绍:
1.数据驱动。从数据文件excel、csv、yaml中读取测试数据,然后把读取到的数据传入到测试用例里面,通过改变数据文件中的数据驱动自动化测试的用例去执行。作用是能够让我们的用例覆盖正反例。
excel/yaml适合做接口自动化,DDT+excel适合做web自动化
DDT:(data driver test)数据驱动测试,可以完美和unittest结合实现数据驱动
DDT使用方式:通过装饰器来使用,在函数或者类上面加上一个装饰器用来实现一些特定的功能
@ddt 装饰类,用于申明当前类使用ddt数据驱动
@data 装饰函数,给函数传值
@unpack 装饰函数,数据解包
@file_data 装饰函数,直接读取yaml、json文件

2.关键字驱动。关键字驱动是一种面向对象的思想,把我们一些业务逻辑封装成关键字,然后调用不同的关键字实现不同的业务。最核心的技术是反射,是框架必备的技能。作用是让不懂代码的人也能够实现自动化测试。
3.数据驱动+关键字驱动。自动化测试框架

3)断言

在unittest里,断言用于判断预期结果与实际结果是否相符
self.assertEqual() #判断两个值是否相等
self.assertTrue() #判断一个值是否为True
self.assertIn() #判断一个值是否在另一个值里面

而pytest中只有assert()断言

二、具体场景设计分析

1)八大元素定位

2)元素定位不到或者页面空白是什么原因

3)下拉框、单选框、复选框、日期选择框该怎么定位处理;多窗口切换、alert处理;动态元素定位

4)查询时页面检查,数据库二次封装

查询功能要求:界面检查点要充分;数据库中是否正确存储;数据查询是否正确
确保界面检查充分点主要从界面、查询逻辑、查询功能通用测试点分析。

查询逻辑:(获取查询条件;根据查询条件拼接SQL命令;连接数据库;执行SQL命令;在界面展示查询结果)
查询功能通用测试点分析:查询条件测试、查询结果测试、数据库连接测试、查询界面测试。
查询条件测试:没有条件、一个条件、多个条件、所有条件
查询结果测试:无结果、1个结果、多个结果(单页、多页)
数据库连接测试:只需要测试一次
查询界面测试:查询总数、数据要与数据库相关联

5)上传、下载文件处理

6)登陆时怎么跳过登录验证

7)执行时怎么跳过测试用例

一、查询

1)查询界面测试:查询总数与列表展示数是否一致、是否与期望一致
注:列表展示数通过获取有多少个tr来考虑
python+selenium+unittest+ddt的web自动化_第1张图片

你可能感兴趣的:(自动化测试,python,selenium,前端)