1、环境搭建

1.1 下载或拷贝整个PyAuthoTest到指定的目录,如D:\PyAuthoTest
1.2 安装Python2.7以及需要使用到的安装包列表如下
requests-2.10.0.tar.gz #;用于发送http数据报文
PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe #;用于主窗口绘制
pywin32-214.win32-py2.7.exe #;用于操作Excel API
configobj #;用于解析加载配置文件
demjson #;用于解析json格式的数据
serial #;用于操作串口的库
Image #;用于图像识别
paramiko #;用于ssh连接
selenium #;用于WEB自动化测试
appium #;用于安卓UI测试

2、PyAutoTest平台介绍

PyAutoTest平台主要通过调用automation里面的tcl脚本完成各项Ixia指定性能的测试

2.1 文件目录介绍

2.1.1 WinMain.py

  • 用例脚本生成(把test产品目录下的excel文件转换成python脚本)
  • GUI用例树生成(把test产品目录下的python文件生成.xml文件)
  • 自动化测试入口以及log显示

2.1.2 config.ini

  • GUI加载时的配置文件

2.1.3 lib目录

  • 主要存放公共调用的类文件
  • 该目录下的文件可以根据需求扩展

2.1.4 config目录

  • GUI上产品类和子产品类配置文件

    • AllPro.ini 里面存放的为产品类下拉列表值(需手动添加)
    • 各个产品文件夹下一般包含至少2个文件
      • REALTEK_AllSonProd.ini 子产品列表文件 (需手动添加)
      • REALTEK_F6.xml 自动生成的测试用例树的配置文件

2.1.5 result目录

  • 为每次测试结果日志保存目录

2.2 GUI参数介绍

2.2.1 首先使用python27打开WinMain.py文件得到GUI入口,如下图所示

GUI参数说明:

    产品类:该参数列表在config\AllPro.ini文件中,主要区分不同产品类型的产品
产品名:该参数列表为产品类目录下的config\产品类\产品类_AllSonProd.ini文件中,主要区分相同产品类中的不同类型的产品,比如AP产品中有AP1,AP2、AP3等
产品COM:控制待测设备串口编号
ssh地址:控制ssh连接的服务器IP地址
DUT登录用户名:登陆DUT时使用的用户名
DUT 登录密码:登陆DUT时使用的密码
DUT 登陆地址:登陆DUT的IP地址或者域名
用例转换:主要把test\产品类\产品类_产品名_模块名.xls的excel文件转换成该目录下同名的.py字典
创建配置:主要把test\产品类\产品类_产品名_模块名.py的所有.py结尾的字典生成config\产品类\产品类_产品名.xml的配置文件,该.xml配置文件解析后即为左边测试用例树中的测试用例点

3、用例编写介绍

3.1 用例编写注意事项
3.1.1 编写的用例文件必须在test\产品类目录下,且文件名格式必须为产品类_产品名_模块名.xls,注意模块名中不能包含"_"
3.1.2 用例文件中的第A列Items必须为测试项名称,如果测试项中有多个测试点,测试项名称格式必须为"编号] 测试项名称",测试项包含测试点以及前置0) 初始化、清理 E)环境清理的行.
3.1.3 测试项必须从第二行开始,以后每个测试项之间有且仅有一行空行
3.1.4 关键步骤和代码步骤必须一一对应 并且必须以 "数字> xxxxxx"的格式编写
3.1.5 代码步骤后的列如果有数据则为数据源列,数据源变量名和0)初始化在同行,数据源下面的值表示该行对应测试点测试时该数据源变量对应的值
3.1.6 测试用例的Excel中工作表名称必须修改为testcases

4、kc类编写

4.1 kc类主要存放在lib\产品类.py文件中,该文件中必须包含一个产品名的类,测试用例中调用的kc配置函数必须在这里有定义.
4.2 __init__初始化函数必须包含一个**kargs变量用于存放从GUI上传入的参数信息
4.3 其他的配置函数一般带一个kargs变量,该变量一般传入的值为字符串字典,一般在处理之前先要把字符串转换成字典格式
4.4 测试用例中调用到的函数返回值必须为布尔变量或者字符串字典(用于接口测试返回值)

5、添加新产品

添加新产品注意基本步骤
6.1 在config\AllPro.ini中添加产品类,在config目录下创建文件夹名为"产品类"目录,然后进入产品类中创建"产品类_AllSonProd.ini"文件,在"产品类_AllSonProd.ini"文件中添加产品名
6.2 在test目录下创建"产品类"目录,然后再"test\产品类"目录下创建"产品类_产品_模块名.xls"的文件,再在"产品类_产品_模块名.xls"文件中按照用例格式编写测试用例
6.3 用例完成以后,打开WinMain.py,然后选择相对应的产品类和产品名,次数左边没有用例,然后点击“用例转换”按钮把Excel转换成.py文件,然后再点击创建配置文件自动生成config\产品类\产品类_产品名.xml文件后,完成以后左边就会有相对应的用例树了
6.4 如果是WEB测试,则在lib\WEB目录下创建 产品类.py文件,在产品类中必须包含产品名的类,WEB中要使用到的标签存放在 产品类_CMAP.xlsx的文件中.(如果是测试API接口和WEB一样)

6、CMAP映射表

CMAP文件中每一个工作表代表一个产品的所有标签集合.
A列表示模块名称,只是用来标识
B列表示模块名称关键字,这个关键字会和配置该模块的函数名一致
C列表示描述该标签的作用
D列表示参数名称,该参数一般就是该模块函数名中的一个参数,对应配置该标签的变量
E列表示该标签的前置frame名称,如果没有则留空.
F列表示定位该标签的属性,一般为id/name/class/xpath/au(appium使用)
G列表示定位该标签属性值
H列表示标签类型,一般为text_field/button/div/checkbox/radio/a/select,该列可以自定义添加新类型
I列表示该属性有多个标签时,根据具体的attribute属性确定标签唯一性(比如raido/select)
J列表示操作该标签时是否需要滚动屏幕,取值为down/up/left/right分别表示向下/向上/向左/向右滚动屏幕

7、测试结果查看

result目录下存放的为每次测试结果日志文件,其中文件夹时间最新的为当前测试文件

源码地址

python自动化学习的更多相关文章

  1. Selenium2+Python自动化学习笔记(第1天)

    参考[http://blog.csdn.net/henni_719/article/details/51096531]大神写的笔记,多谢大神共享. 哈哈,今天又找到一位大神写的Selenium2+Py ...

  2. 【python自动化学习笔记】

    [python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶]      [Python自动化第三篇(2):文 ...

  3. python自动化学习笔记10-数据驱动DDT与yml的应用

    在测试工作中,针对某一API接口,或者某一个用户界面的输入框,需要设计大量相关的用例,每一个用例包含实际输入的各种可能的数据.通常的做法是,将测试数据存放到一个数据文件里,然后从数据文件读取,在脚本中 ...

  4. python自动化学习笔记11-自动化测试UTP框架

    前面基本的unittest及ddt已经学过了,现在我们系统把这些知识结合起来,写一个简单的UTP自动化测试框架: 我们先来建基础目录,首先新建一个项目,项目下建父目录UTP,conf目录,用来存放配置 ...

  5. python自动化学习笔记3-集合、函数、模块

    文件操作 上次学习到文件的读写,为了高效的读写文件,我们可以用循环的方式,一行一行的进行读写操作,打开文件的方法是open的方法,打开文件执行完后还要进行关闭操作. 一般的文件流操作都包含缓冲机制,w ...

  6. Python自动化学习--批量执行.py用例

    这段时间在摸索自动化,学到执行测试用例的时候发现,执行单用例的时候很简单,如果想多条用例执行的话就没那么简单了,经过几番查找,找到如下方法: unittest模块中的TestLoader类有一个dis ...

  7. Python自动化学习--Webdriver中的常用方法

    from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com/&q ...

  8. Python自动化学习--异常提示

    举例:打开一个不存在的文件时: >>open("abc.txt","r")会提示错误 Traceback (most recent call las ...

  9. PYTHON 自动化学习之路

    一.用户交互小程序 username = 'gyc' password = 'gyc' u = input("what is you name?:") p = input(&quo ...

随机推荐

  1. 让图片左右缓慢移动的MoveView

    让图片左右缓慢移动的MoveView 效果: 源码: MoveView.h 与 MoveView.m // // MoveView.h // AnimationView // // Created b ...

  2. 购买 In-app Billing 商品

    购买 In-app Billing 商品 一旦你的应用连接上了 Google Play,你就可以初始化内购商品的购买请求了.Google Play 提供了结算接口,可以让用户进入使用他们的支付方式,所 ...

  3. December 20th 2016 Week 52nd Tuesday

    With the wonder of your love, the sun above always shines. 拥有你美丽的爱情,太阳就永远明媚. To accept the love from ...

  4. TCP/IP 协议图--TCP/IP 基础

    1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议.实际生活当中有时也确实就是指这两种协议.然而在很多情况下,它只是利用 IP 进行通信时所 ...

  5. 【Win10+eclipse+MinGW+QT安装教程】已有eclipse环境下配置QT插件出错详解

    (纪念一下装了一整天濒临绝望的自己[/doge]) (以下所有下载项一律使用32位) step1:下载安装eclipse.适配的jdk.MinGW和QT 1.下载32位eclipse for c++以 ...

  6. Radix Sorts

    基数排序 Strings In Java Char Data Type C 语言中的字符数据类型占一个字节(8 比特),最多只能表示 256 个字符.支持 7 位的标准 ASCII(American ...

  7. The Struts dispatcher cannot be found. This is usually caused by using Struts

    对于struts2中的问题: org.apache.jasper.JasperException: The Struts dispatcher cannot be found. This is usu ...

  8. Hibernate工作原理及为什么要用?. Struts工作机制?为什么要使用Struts? spring工作机制及为什么要用?

    三大框架是用来开发web应用程序中使用的.Struts:基于MVC的充当了其中的试图层和控制器Hibernate:做持久化的,对JDBC轻量级的封装,使得我们能过面向对象的操作数据库Spring: 采 ...

  9. 获取某商家当前每个月销量sql语句。

    用两个mysql函数 FROM_UNIXTIME( ordertime )将日期格式转换成时间戳 month( FROM_UNIXTIME( ordertime ) ) 获取当前日期的月 select ...

  10. .gitignore设置不生效

    .gitignore git中,如果想要让git忽略某些文件,或不想push到远程库,不让其受版本的控制.可以使用git提供的.gitignore文件进行配置.像这样: 一般情况下,在文件还未修改前, ...