GithubHelp home page GithubHelp logo

pyautotest's Introduction

PyAutoTest自动化平台

本平台为带GUI界面的Python程序,主要用于WEB UI自动化、APP自动化、接口自动化测试。

说明

搭建整个自动化平台的运行环境,除了需要满足程序运行的python环境,还需要满足:

  • Web浏览器驱动
  • Linux系统模拟服务器和客户端
  • 安卓APP自动化运行环境

环境

语言

python2.7

平台程序运行环境

下载或拷贝整个PyAuthoTest到指定的目录,如D:\PyAuthoTest

安装Python2.7以及以下需要手动安装的第三方依赖

# 主窗口绘制,GUI界面
PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe
# 操作Excel API
pywin32-214.win32-py2.7.exe

pip一键安装requirements.txt中的依赖

pip install -r requirements.txt

Web及APP自动化

Web驱动

下载对应Chrome浏览器版本的chromedriver.exe,放入系统环境变量目录中

安卓APP自动化搭建环境

安装过程较为繁琐,后续更新到博客中...

Linux环境

使用Centos6.2或者Centos7.7

使用VMware安装两台虚拟机系统,一台模拟服务器,一台模拟客户端。 根据开发自动化测试用例的需要,在虚拟机上安装服务器软件和相关工具命令包。 安装完服务器和相关工具命令包后,可以在平台lib库中开发函数用封装这些Linux命令,以便在后续用例开发中进行调用。

PyAutoTest平台介绍

文件目录介绍

1. WinMain.py

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

2. config.ini

  • GUI加载时的配置文件

3. lib目录

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

4. config目录

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

5. result目录

  • 保存每次测试结果日志

GUI参数介绍

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

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配置文件解析后即为左边测试用例树中的测试用例点

用例编写介绍

1. 用例编写注意事项

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

2、kc类编写

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

3、添加新产品

添加新产品注意基本步骤

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

4、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分别表示向下/向上/向左/向右滚动屏幕

5、测试结果查看

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

pyautotest's People

Contributors

alanfanh avatar dependabot[bot] avatar qdyxmas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.