手机自动化


要做自动化测试首先肯定需要掌握一门编程语言,python编程语言应该是目前做自动化测试的一个重要选择。

因为python语言有如下的一些特点:

  1. Python语言更容易掌握,学习成本低;
  2. Python写出的代码非常简洁;
  3. 基于Python语言的测试开发库和工具也非常的多,比较完整;
  4. python写代码的效率比较高;
  5. python的测试脚本相对更容易维护。

下面这个思维导图是做自动化需要掌握的python的基础编程能力:

很多人在谈到自动化测试的时候通常都是指的UI自动化测试,但是从广义的角度来说只要是使用工具或者写代码完成的测试都是属于自动化测试的范畴,所以自动化测试可以分为:UI自动化测试、介面自动化测试和性能自动化测试,python语言在这些自动化领域都是有用武之地的。

当然题主问的是手机的自动化测试,手机自动化测试也有两个方面:

(1)手机的UI自动化测试

可以基于Appium这个平台来完成,支持使用python作为开发自动化测试脚本。

(2)手机的介面自动化测试

手机的介面自动化测试是对服务端跟手机移动应用进行数据交互介面的测试,可以去学习一下基于python语言的request库,使用request库提供的API可以向服务端介面发送http请求,从而完成对介面的测试。

当然如果想让你的自动化测试框架更完善一些需要加入数据驱动的模块,这就需要你掌握python的文件读写、excel读写或者资料库操作,另外如果希望脚本组织得更完美,还需要掌握一个python的单元测试框架,比如unittest单元测试框架。


针对python自动化测试,首先提供一个python学习大纲:

然后针对不同层次的自动化测试推荐的工具套装组合(原则:主流,能免费则免费,能开源用开源):

B/S自动化测试:python+unittest+selenium;

C/S自动化测试:python+unittest+uiautomation;

APP自动化测试:python+unittest+appium/uiautomator2;

介面自动化测试:python+unittest+requests。

最后,如果想学python自动化测试,可以关注下我的账号和下方专栏,相关技术文章正在不定期更新中。祝好运,加油!

selenium自动化测试?

zhuanlan.zhihu.com图标

首先你要学会python这个语言基础

比如:

1、 变数,数据类型转换,运算符,输出输入

2、 判断语句和循环语句,if、else、elif、while、for等关键词

3、 字元串、列表、元祖、字典、集合等

4、 函数,还有函数里面的操作,以及文件的操作等

5、 还必须学习面向对象的思想,以及对封装,继承,多态等概念的了解

6、 最后异常、模块也需要学习

7、 在模块中有有关于自动化的比如,selenium,框架unittest,pytest,等

给大家一个简单的python自动化脚本


我经常遇到这样的场景:老师,我有python or java基础,但还是不知道怎么写代码?老师,我有代码基础,简单的不用学,我想学高级的。老师,我有编程基础,但是我看不懂代码。。。。。。诸如此类的问题,我想大家也一定有这些内心的OS

面对这样的场景,这样的问题,我也问了不少童鞋,得到的答案其实听悲哀的。莫过于说些代码太难了,不会不懂;这个代码写的不详细导致我看不懂;我有编程基础的,是你写的代码太烂了。。。。。诸如此类把问题全部归于他因的。。。可悲之处明理之人应该懂的了。。。。

好了,言归正传吧,就类似于这样的问题我这里统一说说我的想法和学习技巧吧,有不对的地方请多多包涵,我也是low逼之人,所以难免也有说的不对不妥的地方,喜欢赞之、转之,不喜欢笑之、弃之即可。

有资料奉上,可以看看,链接:http://pan.baidu.com/s/1v-HeDu8fJ1MMUlsVHs5ydg 提取码:muy3

1、学习自动化测试,或者说些代码,核心是学习思想,实现一个框架或功能的思想,没有这个思想你就算会77种编程语言都没卵用。那这里说的思想是什么呢?举个栗子,你想完成一个从excel读取用户名和密码并进行登录的case,你要怎么设计,这就是思路。

大部分我见的童鞋包括我带的学员,一上来就是写代码,其实这是最忌讳的,构思逻辑、代码结构才是第一步,最后一步才是写代码,本末倒置,你说能写的出来吗?

2、所谓我有编码基础,在我碰到的大部分人中,可以解读为我学会编程,但现在忘了,我会hello world,这个不算有基础,撑死算有编码的概念而已。这也就是你为啥写不出来,看不懂的最根本原因。

上面指出了大家的问题,那么接下来就I看看应对方法。这里我特别想多说一句:能真诚的给你指出问题的人值得感恩(虽然刺耳),多去提升自己的不足少去抱怨别人的不好是使你成为大神最快的捷径。

学习自动化测试或编程基本的路径:

第一条:认知(包括概念,意义等)&>熟悉某一门编程语言(python or java)&>从简单固定的例子开始不断练习(跑起来最重要,理解最不重要)&>练习中培养自己解决问题的思路(理解的过程)&>组织更复杂的框架&>不断总结

第二条:模仿&>跑起来&>理解&>转换为自己的

1、自动化测试的认知我就不多说了,在我的新书《小强软体测试疯狂讲义》中已经详细说过了

2、熟悉一门编程语言,注意我的用词是熟悉,不是知道,不是了解,不是会hello world,而是你可以熟练的随便写一个简单的demo出来,掌握了一般的编程、调试方法。至于大家纠结的学python还是java,没所谓的,都可以,你喜欢哪个就学哪个,有java基础的就学java,没有的学python入门会快点。编程语言这个东西本质都一样,只是语法有差异,思想都想通的。

3、不要看不上简单的例子,有多少人口口声声说的我有代码基础,结果却学的一塌涂地。。。。用个词语形容:眼高手低。学代码就要先模仿,让代码跑起来,然后再去理解。很多童鞋一上来就要理解理解,为什么为什么,代码都没跑起来理解各毛线啊,为什么个p啊(sorry,情不自禁的爆粗口了,哈哈,原谅我的任性)

这和你学开车一样,模仿,练习,慢慢的明白汽车的各个原理,加什么油,为什么后排中间有突起啥的了。我经常和我的学员说,学习最忌讳的是开始就陷入细节,一味追求理解。因为很多所谓的理解是需要你有足够的知识、阅历和经历沉淀才能做到的!

4、回到上面问的那个登陆的问题,我们就说说核心的思想。拿到这个问题不是去实现写代码,而是去想实现他的思路和构成,这个过程不涉及具体的细节,不考虑是否能真的实现。我们来看下这个过程:

a、拆分问题。本题可拆分为python读取excel(还要考虑excel怎么设计更方便读取)、读取出来的数据如何存储、存储之后的数据如何放到对应的用户名和密码上

b、逐步实现。以selenium为例,先把用户名和密码元素识别出来且写死数据,至少保证代码可以运行起来。不要上来就想我用户名要是好几个怎么实现呀。一个写死的用户名你都没跑起来代码想那么多干毛线啊。

c、实现python读取excel数据并保存

d、用读取保存的数据去替换对应的用户名和密码

e、完善代码加入异常处理机制。不要一开始就想报错了怎么办,用户名密码不对了怎么办,测试的基本思想怎么关键时间都丢失了呢。。。做功能测试我们都知道先正,后反啊,怎么到了写代码的时候就忘记了呢。

f、运行好了,理解了,可以慢慢在优化,比如加入unittest、htmlreport等

在整个上述的过程中,很多代码都是固定的,比如unittest的用法格式就是固定的,先记住怎么用,用起来再说。很多人老学别人去看源码,你的有一定基础了才行啊,不然看源码简直是雪上加霜。

最后,学习是一个过程,是一个步骤,和生成一辆汽车一样,不要跳著学习,能跳级的童鞋毕竟是少数,踏踏实实的一步步学,越往后你会发现效率越高,有时候我们以为的我们以为真的不是我们以为的那样。。。。。。就和你开车,你的先让车跑起来才能想怎么变道安全,怎么超车安全,怎么侧方停车啊。。。。

PS:有些东西文字不好表达,还的靠大家意会。。。。。。。幸苦大家了


1、了解Python的基础语法、基本数据类型,详情如下:

2、Python函数、文件操作、异常处理,详情如下图:

3、类与对象

4、类和对象应用-openpyxl、logging、unittest、ddt

Python学到以上程度就可以做自动化测试了。

--文末福利:自动化测试视频汇总 提取码:6t33 ----

如果提取码失效的话,可以找我重新领取,希望以上回答能够帮助你


其实单看理论知识,不好学会,因为没有一个目标。换种思路以案例给大家介绍一下,Python做自动化需要学到哪种程度呢?

如果给你一个可以做自动化的项目,你要怎么做自动化?

--项目--

8大模块,---2000左右用例数;

一、熟悉业务、需求文档/手工测试/产品。了解模块之间的关系/测试人员

在遇到这个项目的时候,第一个问题一定是想到上述内容,其实这里应该有一个全局思维。不仅是怎么去开始写自动化代码,而是能用代码帮助别人解决什么更繁琐的问题?

二、了解业务之后,开始分析---系统中哪些模块比较适合做自动化,哪些不适合?

  • 历史稳定性,功能复杂性&>&>&>&>功能太复杂的模块就不适合自动化,要从简单一些的入手。
  • 模块核心&>&>&>&>每个系统都有自己非常核心的模块;
  • 使用频率模块,哪一个模块Bug率目前偏高(这个模块经常出历史功能的问题)
  • 测试团队、产品团队中与用户接触的比较高的人开个会交流下,看下哪个模块需要做比较高的维护工作;
  • 筛选了2个模块,400个测试用例;
  • 如果是介面,就看介面有多少个,每个介面要设计多少个用例
  • 介面自动化用例需达到80-100%

注意:先分析在哪一个模块来做,能够得到最快的产出比,最快见效的是什么模块?

三、功能测试---400个---从功能测试用例中去筛选自动化用例---核心模块的核心功能、主流程、主功能点===140个用例---用例评审&

  • 在这个阶段,要先对模块做用例设计,其实在参与手工测试过程就是了解这个项目的模块。
  • 因为还不知道项目的人员安排和要做多久,具体也不太了解这个模块的情况。
  • web自动化最大的目的就是负责主流程,异常流程分情况,如果它容易实现没有太大难度就可以做,如果异常场景比较极端,条件准备比较复杂,就可以不去实现它的自动化。

重点!其实要做自动化是需要部门领导支持的,不然他给你大量的功能测试的工作。如果就你一个测试,就根据上面的3点,自己进行筛选,做完和上级领导汇报一下。需要告诉领导为什么这么选,选出来的结果是什么,目标是什么。

四、自动化计划

终于要到这一步了,自动化类型:web/api

1.要提前写清楚,为什么选择了这两个模块,为什么要用140个用例;

2.还要告诉领导,需要花多少时间框架选型,一般就是需要半个月内;框架选型主要是考虑团队中其他人的水平,如果没有人就你一个,自己写代码顺手就自己写;

需要写清楚的计划是:

如何搭建公司自动化框架??

常用的配置文件,日志文件等都封装成模块,需要套不同的业务场景,进行优化细化,如果换了项目,就把原来的业务上case删除,可以做新的业务;

以上还没有涉及到Python要学什么吧~其实很多没有接触过自动化测试的小伙伴,你直接告诉他Python要学什么语法,这些我觉得看了懂了,但是就忘了,只有以案例说话,才能更好的理解自动化该如何做。上述仅仅分享自动化接手的流程。

第二阶段:Python学什么?如何学?

首先要知道python的历史&>&>&>数据类型&>&>&>常用操作符&>&>&>Python的数组、元组、字元串;

else和with语句&>&>&>Python的粉盒循环&>&>&>函数&>&>&>内嵌函数和闭包&>&>&>lambda表达式&>&>&>初识递归&>&>&>递归求解汉诺塔&>&>&>Python序列&>&>&>永久储存&>&>&>文件&>&>&>字典&>&>&>集合&>&>&>图形用户界面入门&>&>&>变数和字元串&>&>&>文件系统&>&>&>异常处理&>&>&>类和对象&>&>&>构造和析构

第一阶段要学习的知识点:

图片从左到右看,不许盗我图

学习线路图这个阶段的学习目标:

  • 掌握资料库、操作系统、控制版本;
  • 能够熟练运用所学技术搭建各类伺服器环境
  • 深入理解软体开发过程的各种问题;

别再做功能测试了快来解锁新技术(1) - 乐搏软体教育 - 软体测试 - Powered By EduSoho?

www.17lebo.com图标别再做功能测试了快来解锁新技术(2) - 乐搏软体教育 - 软体测试 - Powered By EduSoho?

www.17lebo.com图标

第二阶段:Python+MySQL资料库交互应用

·pymysql模块引入及使用

·Python中的对资料库做增删改查等操作

·Fetchone/Fetchall等查询操作

·案例演示在资料库查找数据做登陆操作

·MySQL与Python的测试验收考试、考题讲解

第二阶段学会效果:

掌握资料库基本操作,学会Python+资料库交互应用。

第三阶段:Web前端技术精讲

·Web前端技术之:HTML技术

·HTML常用标签及实例讲解

·HTML与CSS实例结合

·JavaScript简介与基本语法

第三阶段学会效果:

熟悉Web前端主流技术,为后期学习UI元素定位打好基础与铺垫

第四阶段:Web端Selenium自动化操作

·学习web页面基础知识

·自动化框架Selenium介绍和环境准备与搭建

·Python+Sleenium实现对系统界面的操作

·Python内置csv模块以及应用

第四阶段学会效果:

自动化常用设计模式页面对象模型脚本编写,Sslenium结合多线实战项目。

第五阶段:介面自动化讲解与实战

·TCP/IP协议、JSON数据

·Python+Requests库实现介面自动化

·其他介面测试工具POSTMAN

·其他介面测试工具Jmeter

·其他抓包工具FIDDLER

第五阶段学会效果:

熟练掌握介面自动化技术,从代码脚本+库实现到其他主流工具的操作实现介面自动化

第六阶段:移动端Appium自动化操作

·Appium测试环境搭建

·Android模拟器/Android Studio

·Appium测试基础到实战

·Jenkins环境部署以及综合实战

第六阶段学会效果:

掌握Appium手机自动化测试知识,自动化测试相关工具的使用

第七阶段:RobotFramework+Web端自动化

·Robot Framework框架介绍、RF+Python环境搭建

·Robot Framework+Selenium2Library库Web测试

·Robot Framework语法之执行dos命令、Python语句

·Robot Framework+Web端自动化项目实战

第七阶段学会效果:

独立完成web/app自动化工作


想用Py做自动化,至少也要熟悉以下几点:

基本数据类型:不可变数据(3 个):Number(数字)、String(字元串)、Tuple(元组)

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

运算符:算术运算符、逻辑运算符、赋值运算符、比较运算符、位运算符...

数值类型:整型(Int)、浮点型(float)、复数(complex)

条件控制语句:if...elif...else 语句

循环语句:while 语句、for 语句

函数:def 定义函数、函数调用、参数传递、匿名函数...

迭代:迭代过程、迭代器、生成器、生成器表达式

文件操作:open()函数、read、readline、readlines、write...方法

os 模块:处理系统文件和目录

模块:模块导入、常用标准模块、常用第三方库

错误和异常:try/except 语句


Python水平不好,说说java吧,一直学基础知识,一直学,我平时很少大块时间学习java基础,都是看博客和文章讲某一个知识点,重点是积累。

到哪种什么地步呢,等到你只能去看国外的英文文档为止,靠著翻译工具不断学习(我英文不好)。

一门语言学足够了,做什么都差不多。


这个问题真没一定的。我觉得能把项目需求解决了的程度。比如Python都是写一些脚本,跑一些自动化case。最基本的赋值、循环、判断、打log这些首先掌握就可以写简单地case。学会后再循序渐进加深学API

除了金阳光提到的,我觉得你还要学会导入库

以及工具的运用api,比如appium。

我个人Python也是入门,不过你得要知道自动化相关流程才能有个方向


推荐阅读:
相关文章