01POM、关键字驱动、数据驱动、标记

 1、分层设计思想、关键字驱动、数据驱动

1.1PO模式PageLocator、PageObjects、TestCases

例如:把30个功能封装起来,有500个功能测试用例,按照业务场景从30个页面当中调用需要的页面即可。PO模式,全称Page object,页面对象模型

将页面的元素定位和元素行为封装成一个page类,实现页面和测试用例的分离。

在测试用例中,需要调用页面对象中的行为,组成测试用例。

优势:

(1)当某个页面元素发生变化时,只需要修改该页面对象中的代码即可,测试用例不需要修改。

(2)提高代码复用率,结构清晰,维护代码容易。

(3)测试用例发生变化时,不需要或者只需要修改少数页面对象代码即可。

分层:Testdatas-重用、不同的环境不同的数据

1.2数据驱动:ddt模块,每个用例启动会话/所有用例启动会话,尽量不依赖测试环境-选择自己创建条件

尽量保证用例的独立性

保证用例的稳定性-连续运行5次-jenkins-尽早加入持续集成

定位表达式的灵活的 、等待方面的处理

用例不宜复杂,拆成多个用例,考虑成本,选择性变成自动化用例 。部分前置或后置,用接口来代替

basepage:关键字封装:等待、查找元素、点击、输入、获取文本、获取属性、窗口切换、iframe切换、上传、

元素的操作:等待、查找、操作

实现:页面当中的每一个操作,都进行了异常捕获、失败截图、操作时间记录、日志打印

Pageobjects当中,全部调用basepage提供的关键字,来封装业务函数

1.3pytest测试框架,更方便的筛选用例-冒烟/回归,更方便的用例组织

特点:1、自动发现测试用例test_*.py/*_test.py、test_的函数/Test类并没有初始化函数中的test_(函数)

2、assert断言

3、fixture(前置后置)测试会话级别(session)、测试模块(module)、测试类(class)、测试用例(function)

4、丰富的插件库,allure库

1.4Mark功能:

1、标签名先注册:pytest.ini [pytest] markes=smoke

2、测试用例/测试类/测试模块 测试用例:@pytest.mark.smoke

测试类/测试模块 :pytest.mark=[pytest.mark.smoke,pytest.mark.loginn]待确认

1.5pytest命令行:

1、pytest在按个目录下运行,那就在哪个目录中去搜索用例

2、根据标签过滤用例:-m标签名

3、-s -v 在控制台当中看到更详细的用例运行状态

1.6pytest测试报告:

1、xml--跟jenkins集成,就是解读xml文件

2、html--插件:pytest html 参数:--html-../../(相对pytest的命令执行目录的相对路径)

conftest.py

1、共享前置后置

2、不同的包目录当中,可以有自己的conftest.py

3、定义前置后置

@pytest.fixture(scope="")

def func1():

#前置

yield [返回值]


1.7、测试类/测试函数 @pytest.mark.usefixture("函数名称")

如果有返回值,那么把函数名称作为测试 用例的参数即可,函数名称-返回值

数据驱动:pytest参数化

1、@pytest.mark.parametries("param1",[1,2,3])

def test_1(param1):

pass

2、@pytest.mark.parametries("param1,param2",[(1,2),(3,4)])

def test_2(param1,param2):

pass

3、@pytest.mark.parametries("param1,param2",[1,2,3,4])

@pytest.mark.parametries("param2",[a,b])

def test_3(param1,param2):#两个参数排列组合,有8组测试用例

pass

失败重试机制:rerun,插件:pytest-rerun pytest命令参数(pytest --rerun 5 --reruns-delay 1)

1.8pytest allure报告生成:

1、allure 命令环境安装

2、pytest-安装allure插件 命令参数:--alluredir=../..(相对pytest执行目录的路径)

3、allure-serve

4、jenkins进一步集成:安装jenkins的allure 插件

PageLocator、PageObjects、TestCase(conftest.py)、TestDatas

common:basepage、logger、工程路径配置

outputs:日志、截图、报告

main.py:框架入口

API:接口

2自动化用例的规范

2.1自动化运行测试、测试用例组织、测试报告生成、测试日志自动生成、失败截图的自动生成、指定输出路径、提供入口

编写规范:团队合作

文件命名规范:函数命名规范、通用的英文名称(login,action)

元素定位规范:非绝对定位、定期互相检查

按模块分层次:事先搭好

良好的 注释

2.2pytest收集测试用例的规则:

1、符合命名规则test_*.py  *_test.py

2、以test_开头的函数名

3、以Test开头的测试类(没有_init_函数),以test开头的函数

mark:打标签方法:@pytest.mark.标记名,运行用例的时候可根据标签名来过滤用例  @pytest.mark

fixture:主要目的是为了提供一种可靠和重复性的手段去执行那些基本的操作

用例执行时清理和准备 ,unnitest中指那些:setup(),teardown(),classSetup()classTeardown()

定义:函数类声明时,前面加上@pytest.fixture

区分环境准备和环境清理使用yield,yield后面的代码就是环境清理的

fixture设置返回值:yield 返回值

contest.py 定义公共的fixture,多个测试类中都可以调用,pytest提供了confest.py文件,可以将fixture定义在此文件中,运行时不需要导入这个文件,自动去查找,找到对应的fixture

2.4编写自动化测试用例应遵循的原则:

(1)一个用例为一个完整的场景,从用户登录到退出并关闭网页

(2)一个用例只为验证一个功能点,不要试图在用户登录系统后把所有功能都验一遍。

(3)尽量少的编辑逆向逻辑用例,例如手机号输错有几十种,另一方面自动化脚本比较脆弱,对于复杂的逆向逻辑实现容易出错

(4)用例与用例之间避免出现依赖

(5)一条用例执行完成测试之后需要对测试场景进行还原,以免影响其他用例的执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,106评论 6 542
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,441评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,211评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,736评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,475评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,834评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,829评论 3 446
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,009评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,559评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,306评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,516评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,038评论 5 363
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,728评论 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,132评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,443评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,249评论 3 399
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,484评论 2 379

推荐阅读更多精彩内容