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. 按钮在执行frame动画的时候怎么响应触发事件?

    按钮在执行frame动画的时候怎么响应触发事件? 代码中效果(请注意,我并没有点击到按钮,而是点击到按钮的终点frame值处): 对应的代码: // // ViewController.m // Ta ...

  2. 沉淀,再出发:XPath的理解和使用

    沉淀,再出发:XPath的理解和使用 一.前言   在很多查找的场合之下,我们需要使用正则表达式和其他的查找工具来进行内容的匹配和查找,特别是对于xml文件,我们可以使用xpath等工具来进行查找,通 ...

  3. July 27th 2017 Week 30th Thursday

    A smile is the most charming part of a person forever. 微笑永远是一个人身上最好看的东西. Smile in the mirror, and yo ...

  4. Vue中$refs的用法

    说明:vm.$refs 一个对象,持有已注册过 ref 的所有子组件(或HTML元素) 使用:在 HTML元素 中,添加ref属性,然后在JS中通过vm.$refs.属性来获取 注意:如果获取的是一个 ...

  5. [T-ARA][20090729]

    歌词来源:http://music.163.com/#/song?id=484058959 在基本发音规则之上,考虑到了音变的某些情况,最后结合听力搞定的一版歌词发音(只要学完养乐多老师的教程应该读起 ...

  6. BZOJ 1001 狼抓兔子 平面图的最小割

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1001 题目大意: 见链接 思路: 求最小割,平面图的最小割等价于对偶图的最短路 直接建 ...

  7. spring的权限控制,过滤器

    spring的过滤器可以实现登录状态问题 1.创建一个AccessFilter类,基础代码 package com.ujia.util.access; import javax.servlet.htt ...

  8. 关于Struts2通配符无效的说明

    在struts2.3之前的版本,正常的配置就可以了,但在struts2.3版本之后,使用通配符调用方法时,内部会验证是否允许访问该方法. 1.struts2.5 为了增加安全性,在 struts.xm ...

  9. BZOJ3174:[TJOI2013]拯救小矮人(DP)

    Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...

  10. Android Studio 学习之 Android SDK快速更新

    找到国内谷歌服务器IP地址 进入http://ping.chinaz.com/输入g.cn 然后查询出最快的节点,复制下IP地址.如:IP:203.208.40.146  响应时间:3毫秒 在Andr ...