GithubHelp home page GithubHelp logo

pythonuiautotest's Introduction

PythonUiAutoTest

项目目录

1.cases: 测试用例存放目录
2.Cases->unit_test->unit_test.py: 所有用例均继承此文件中的自定义unittest
3.common: 项目公共方法
4.Config->config.py:存放项目所有目录的路径信息
5.Datas:存放了测试用例所需的测试数据,两种形式:1.py文件保存2.excel文件保存
6.libs:存放对源码或者第三方模块修改后的模块
7.pages: 根据page object 设计模式,本目录存放被测项目每个页面的元素操作及业务流程
8.Pages->base ->base.py: 对selenium webdriver api部分功能的二次封装(所有页面的通用方法)
9.Pages->locator->locator.ini: ui对象库,存放所有页面的操作元素定位表达式
10.log:自动生成目录及生成项目执行日志
11.log->img目录存放项目执行时的错误截图,包括用例执行失败时的截图
11.report:自动生成目录及生成项目测试HTML报告(报告包含用例统计饼图及失败用例的截图)

ui对象库

Locator.ini
使用配置文件作为UI对象库,存放被测项目中的元素定位方式及定位表达式,方便项目维护,做到定位与代码分离,
元素变动时只需修改对应定位方式及表达式即可,不用修改代码逻辑

测试数据

*Datas.py
Test_cases.xlsx
项目使用两种存放与读取测试数据的方式
1.使用excel表存放数据,对不同测试内容设计不同的数据表,每条用例关联对应测试数据,读取较麻烦,但做到了代码与数据的分离,更能体现数据驱动的**
2.使用普通py文件管理数据,读取方便,个人认为UI测试使用这种方式更加简单
3.本项目中登录用例采用的excel存储数据,投资用例采用的py文件存放数据

项目设计

1.整个代码编写方式采用python面向对象程序设计**,重复的操作及代码使用类粉装,增强代码的结构,增加代码的复用性,及代码可维护性
2.使用selenium 3自动化测试工具对测试页面的操作
3.结合python unittest单元测试框架编辑及组织测试用例
4.通过ddt数据驱动测试框架,实现同一个测试用例执行不同的测试数据,提高测试覆盖率,测试准确性,及减少部分重复测试代码
5.采用ui对象库的**,保存被测试项目所有的定位表达式,保证代码与定位分离,易维护,当项目页面变动时,只需要修改本文件指定的定位即可
6.项目整个结构使用Page Object设计模式,把元素和业务逻辑按照页面抽象出来,分离成一定的对象,为每个页面的属性和操作构建模型,增加代码复用性,增强代码结构,当对数据或者元素修改时不会影响业务的流程及用例的执行
7.测试执行过程中自动生成测试日志及HTML测试报告

测试环境

1.Windows 10 
2.Python 3.6
3.Selenium 3 
4.Openpyxl
5.Firefox或Chrome浏览器(需包含对应驱动程序)

项目执行

1.Cd PythonUiAutoTest
2.Python run_test.py

测试结果 报告展示 Image Image Image 用例进度

1.登录功能测试用例已经完成
2.投资功能测试用例已经完成

博客地址

https://www.cnblogs.com/linuxchao/

pythonuiautotest's People

Contributors

13691579846 avatar

Stargazers

 avatar 张家旭 avatar  avatar

Watchers

James Cloos 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.