Python自动化测试框架到底是个什么东西?

企业中,自动化必定会演变成搭建测试框架,这是为什么呢?

可能有一些刚刚进入软件测试行业的朋友还不理解什么是测试框架,没关系,首先我们知道一点,为什么自动化会演变成搭建测试框架呢?


第一个

因为自动化肯定是一个团队在做,而不是你一个人在做,所以团队在做自动化会给企业项目带来很大的收益。

如果大家对测试框架不了解的朋友,其实如果你去面试自动化测试工程师,很多人就会有一个疑问,假设我现在是一个面试官,我问你一个问题:你能不能搭建测试框架

如果是你,能不能针对这个问题聊一聊呢?其实这个问题疑问,你会不会自动化,有没有经验,肯定一问便知。大型招聘网站上岗位职责会不会有要求能独立搭建自动化测试框架?

也许你可能会一点Python脚本,会一点selenium,会一点点这个编程,但是总之这个框架的部分,大家可能还很模糊。有些朋友可能说这个搭建测试框架到底是什么玩意儿?

那我们今天就来好好理解什么是搭建自动化测试测试框架,然后如何从零开始搭建。

那么在搭建测试框架之前,我们可以了解一些最简单的概念。


01.主流测试框架原理解析


什么叫做测试框架?

首先框架分为几种,框架分为技术框架和自己搭建测试框架。

第三方技术框架:

下面这些就是做过自动化的朋友所熟悉的,根据不同的产品模型有很多种:

web的DOM元素自动捕获识别,windows的窗体识别,基于图像识别airtest

web自动化主流框架:selenium,robotframework,macaca

移动端自动化主流框架: appium,macaca,uiautomator2,robotframework

接口自动化测试框架: request,HttpClient,httprunner,robotframework

(其实在做自动化测试,框架从来不缺,非常多的框架,一大把,甚至平时会有很多朋友给我后台留言,你会不会这个框架那个框架之类,有一些不是当下企业主流常用的。其实所有的测试框架归根结底,你如果用多了它们之间都是相通的)

友情提示:如果是小白同学,selenium是什么,或者Python最基本的环境搭建还不会的,建议可以阅读我之前写的其他基础一些的文章,自动化基本的一些知识。也有视频教程免费领取,愿你我相遇,皆有所获!有了一定基础再来阅读这一篇文章,可能对自动化会有一个新的认识。


我们接着讲,这个自动化测试框架,首先Web端的像这个问题,你在面试过程中肯定会说到,我之前在工作中做自动化我会用到selenium、robotframework或者用macaca等等,是如何用selenium+Python+unittest+一些数据驱动等等,如何来做的。

然后有移动端的,最主流的我都写在了第一个,比如移动端的就是appium,它可以说是做app自动化的鼻祖,随着技术的更新uiautomator2是Python的一个内置库,然后像robotframework也是通过二次封装也是可以做app自动化的测试框架。

所以你去应聘自动化测试工程师,面试官问你任何类型的自动化,你都要马上能够想到很多方案,比如说我是用什么框架,如何去做。

基于以上非常好用,主流第三方开源的测试框架,根据这些代码分层、模块思想去搭建一个测试框架。


自主搭建测试框架:

框架帮助我们编写更加简单而且好维护的自动化用例,

让我们把主要精力放在测试用例的设计上,

需要把—些额外的东西抽象出来,封装起来,

一套好的测试框架,可以让团队其他同事不需要有很强的代码基础,就能编写自动化测试用例,维护测试用例,执行自动化用例,利于团队协作,起到提质保效的作用。


02.搭建测试框架前的准备与思路


我们做事情,做自动化也不要盲目的去做

1.请确保你已经掌握了一门编程语言的基本的语法

2.开源测试框架的基本用法

3.如果你要搭建Ul框架,请确保你已经掌握了Selenium的基本用法(常用的点击,输入,等待,滑动,获取属性,鼠标键盘,用例断言)

4.如果你要搭建接口框架,请确保你已经掌握了接口测试(session)和request基本用法(get,headers,session,断言)


在搭建之前,我们来看一个最简单的脚本,我们先从UI自动化开始。

比如公司会有各种系统,后台管理系统,前端一些用户交互的系统,像这一类管理系统大多数以Web端的为主,这一类后台系统大部分功能你就可以用自动化来实现,用UI自动化来保证后台管理系统它的最基本的功能和它主要的核心业务、大面积的回归测试、用自动化脚本。

我这里就写了一个最简单的脚本


 运行之后它就会帮我们自动去登录,打开浏览器然后输入文本,输入用户名密码,点击登录。

这个是最简单的send_keys,click。

其实如果我们真正的在企业中做自动化,就需要来考虑很多问题了,前面这个是脚本,我们现在要来搭建自动化测试框架,所以脚本形成框架之前我们是不是要考虑很多问题。

比如说:


1.脚本的运行环境(linux,windows)

⒉.配置文件(环境:测试,预发布,正式。数据库数据:用户名密码)

不是说所有人都有这个权限,拿到正式环境,拿到预发布环境,数据库的账户和密码的,所以这些东西需要放到配置文件里面去。

3.初始化浏览器(类型:谷歌/火狐模式:本地/linux/docker/无头模式/浏览器常用操作)

4.Po模式

5.log日志

6.报告系统

7.数据驱动

8.关键字驱动

还有十几条……


所以最基本的,我们先考虑好这些问题,那么我们一步一步来。

比如说我在配置文件里面,随便改一个配置,它就会到另外一个环境运行了


 比如说像这种域名,肯定很多地方用得到,如果你需要写死在脚本里面是不大现实的。

数据库的用户名和密码你不能写在脚本里面,都是非常敏感性的东西,很多都可以想到配置文件里面。

大家用很多的开源框架,应该也感受到好用的东西它肯定会有一个配置文件,开发也是一样,比如说上线了需要跑一个什么脚本,是不是也经常去改配置文件,运维也是一样的,如果要去发布东西了,他也会经常去改配置文件,而不是一些真正的代码。

那我们测试也是一样的啊,你要来运行这个自动化测试,自动化很多东西需要用配置文件来操控它,这是一个思想

比如说我们的pytest,那这也是一个框架,好用!它也有一个配置文件。

这个脚本自身的一些因素我们就不说了,比如说脚本需要优化的地方

脚本优化:没有等待时间,定位元素稳定,unittest/pytest组织用例,复用性,断言

所以我们简单的脚本,根本不算是自动化,这可以理解成你在功能测试点点点一样的。这无非是用脚本代替我们去做一些操作,但是像这样的脚本,真正的做自动化肯定不是这样的脚本,你如果来写这样的脚本,纯属你的个人爱好,或者是以个人兴趣在玩。你真正的去面试自动化,面试官也不会问你输入文本用什么方法,怎么去定位的,怎么去点击的,面试自动化测试工程师这些不在范围之类。面试官会默认你会了,这些是最基本的东西。

接下来,我们来做封装。

第一步我们就要考虑的点,刚刚所说的配置文件,我们就要管理好到底做什么东西。

我们在目录下面新建一个文件夹,比如说config,里面可以包含很多很多东西。(不仅可以放base.Yaml,可以放用例,用例之间的关联)比如说我们刚刚很多的一个配置,这里我建议大家用一个Yaml文件。不管是可读性还是好用性都是非常好的。

比如base,一些最基础的数据,base.Yaml,


根据前面说到要考虑的东西



如果没有理解可以公众号程序员一凡主页点击领取资料,免费获取本章视频教程。

看懂了?之前有没有思考过这个问题?你可能写脚本最多用一个unittest运行前面的一个脚本,其实真正一个团队在做自动化测试,用这个方法很难管理的,不是你一个人在做,如果想做自动化测试团队的核心人物,这些问题都是需要去思考的。

配置文件为什么会存在,存在的意义,了解了之后,我们再去读取配置文件。

#在Python里面非常简单,

import yaml 导入

#然后我们就可以来写一个类

class config:

#比如这个类里面是专门读取配置文件,我们也命名为config

def __init__( self):

#我们写一个初始化方法

读取yaml文件在Python里面,会用到一个上下文管理器

#with 就说说它会自动化去打开而且关闭



 以及docker容器技术玩法

独立搭建docker容器+git+Jenkins自动化分布式测试

一系列的细节,文字表述可能有点长,可以直接去观看录制好的视频教程。(公众号:程序员一凡,粉丝福利免费领取)


愿你我相遇,皆有所获! 欢迎关注微信公众号:程序员一凡 

1.免费领取一份216页软件测试工程师面试宝典文档资料。 

2.软件测试学习路线以及相对应的视频学习教程免费分享!

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

推荐阅读更多精彩内容