python自动化
文章平均质量分 83
从零开始到自动化框架的搭建
new nm个对象
人生漫漫,吾将上下而求索
展开
-
python自动化(七)自动化测试平台开发:8.前端开发实战上之环境搭建
1.安装vue-clivue-cli是vue的脚手架框架,我们如果要使用vue需要准备大量的环境和配置文件,非常的繁琐。而vue-cli就是用来简化这些繁琐的步骤的。使用vue-cli会自动帮我们搭建好一套vue的环境。我们只需要在它的框架下,完成我们的开发内容即可。第一步:安装node:https://nodejs.org/zh-cn/当执行以下命令成功时,表示安装完成。第二步:安装淘宝镜像(类似于阿里云的maven中央仓库镜像)# 安装npm install -g cnpm --regis原创 2021-10-24 14:53:07 · 571 阅读 · 1 评论 -
python自动化(七)自动化测试平台开发:7.前端开发之vue.js基础讲解
一.vue框架简介vue官网:https://cn.vuejs.org/1.什么是vue2.vue的工作原理vue的工作原理是基于MVVM模式,该模式可以分为三层:View层:view层是指DOM层,可以理解为用户能看到的界面。程序与用户的交互都是通过view层来完成的。Model层:数据层,可以简单理解为后台数据层。Vue层:位于View和Model层之间,前后端的数据交互都会通过vue层。3.组件化开发组件化开发是现在前端开发的一种潮流。以前的前端开发都是按照页面把所有内容揉原创 2021-06-02 21:49:00 · 629 阅读 · 1 评论 -
python自动化(七)自动化测试平台开发:6.后端开发之用例报告的上传
1.用例报告的上传1.1 接口分析接口功能:该接口实现将执行用例时生成的用例报告上传到服务器储存起来,用户可以通过界面查看报告。接口场景:当用户调用执行用例接口后,用例开始执行,当用例执行完成后,Jenkins任务中会调用上传用例报告的接口,将测试报告上传到服务器上。1.2 添加用例报告表我们需要在数据库中创建一个报告表,用于存放测试报告的相关信息。且该报告表需为用例表的外键表,与用例表建立多对一的关联关系。即一个用例可以有多个报告。修改models.py文件如下:"""使用flask原创 2021-05-31 23:34:12 · 684 阅读 · 2 评论 -
python自动化(七)自动化测试平台开发:5.后端开发之用例文件下载,执行用例,查询用例执行状态
1.用例文件下载1.1 接口分析1.2 实现第一步:在forms.py文件中,创建用于校验用例文件下载请求参数的校验器from wtforms import Form, StringField, FileField, IntegerFieldfrom wtforms.validators import Length, InputRequired, ValidationErrorfrom flask_wtf.file import FileRequired# 校验用例储存请求参数clas原创 2021-05-30 23:01:37 · 818 阅读 · 12 评论 -
python自动化(七)自动化测试平台开发:4.后端开发之用例的储存和查看
1.需求讲解我们这个测试平台的主要功能有:上传储存用例,查看用例,运行用例,下载用例,上传测试报告等。2.储存用例功能2.1 创建用例表(1)普通创建第一步:创建app.py,用来启动一个flask服务from flask import Flaskimport conffrom flask_restful import Api,Resource# 实例化一个Flask对象,用于启动flask服务app = Flask(__name__)# 添加配置文件app.config.fr原创 2021-05-29 01:42:28 · 630 阅读 · 2 评论 -
python自动化(七)自动化测试平台开发:3.flask技术讲解上
一.后端开发框架flask本次主要讲解flask框架1.flask框架简介flask框架是一款非常受欢迎的python web框架,它非常的灵活小巧。2 flask框架的基本使用from flask import Flask# 传入__name__初始化一个Flask实例app = Flask(__name__)# 装饰器,将当前路由映射到指定函数@app.route('/')def hello_world(): return 'hello world'if __原创 2021-05-26 20:51:10 · 1221 阅读 · 0 评论 -
python自动化(七)自动化测试平台开发:2.flask技术讲解下
一.flask实现数据持久化所谓数据持久化也就是讲数据写入到数据库或者文件中保存。一般我们在代码中操作数据库并不是直接写sql语句,而是使用ORM模型。即以操作类的方式来操作数据库。1.SQLAlchemy简介SQLAlchemy是一款ORM模型的数据库框架,可以实现以类的形式来操作数据库。安装方式:pip install SQLAlchemySQLAlchemy操作原生数据库命令from sqlalchemy import create_engine# 主机地址HOSTNAME =原创 2021-05-24 23:17:01 · 794 阅读 · 10 评论 -
python自动化(七)自动化测试平台开发:1.自动化测试平台简介
一.测试平台简介为什么需要测试平台已有的开源测试平台不能满足需要,不要轻易造轮子需要公司级别的定制需要整合公司内部的多套平台例子:DevOps平台、精准化测试平台、质量监控平台等等常见的测试平台开发模式大一统模式(适合简单的项目)基于模板技术渲染界面,代表作:Rails、Django入门容易,上手简单前后端分离(适合复杂的项目)使用标准的json进行前后端通讯通常是前端使用SPA框架后端框架可以是小型的api框架 Flask、SparkJava也可以是大型的web开发框原创 2021-05-24 22:13:29 · 4582 阅读 · 5 评论 -
python自动化(六)持续集成:5.Jenkins集成Spring Boot项目源码打包、部署流程
一.实战项目介绍1.项目介绍JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用经典开发模式,让初学者能够更快的入门并投入到团队开发中去。在线代码生成功能,包括模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计,模块增减便捷;界面无刷新,一键换肤;众多账号安全设原创 2021-05-23 17:19:49 · 433 阅读 · 0 评论 -
python自动化(六)持续集成:4.Jenkins集成APP源码打包,部署,自动化测试全流程
一.使用界面配置任务方式集成1.APP源码打包原理源码github地址:https://github.com/princeqjzh/AndroidSampleApp1.1打包依赖环境安装:SDK(本例以Windows系统为例,Windows系统下安装sdk,在appium章节已讲解。Linux系统安装sdk可以参考以下方式)(1)下载sdk:http://tools.android-studio.org/index.php/sdk/(2)节点机下新建目录:/usr/local/sdk,并将原创 2021-05-23 16:35:33 · 547 阅读 · 0 评论 -
python自动化(六)持续集成:3.Jenkins集成自动化测试实战
一.jenkins集成WEBUI自动化1.python代码实现测试代码如下:import osimport timeimport allureimport pytestfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import [email protected]('百度搜索模块测试')cla原创 2021-05-23 15:51:59 · 1319 阅读 · 0 评论 -
python自动化(六)持续集成:2.Jenkins技术讲解
一.程序集成体系介绍1.瀑布模型和敏捷模型瀑布模型:在之前我们项目的开发模式都是瀑布模式。项目生命周期按照需求分析>概要设计>详细设计>代码开发>测试>上线发布一步一步进行。这种模式文档完善,整个开发过程很严谨,相对比较可控。敏捷模式:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也原创 2021-05-22 22:46:35 · 2039 阅读 · 12 评论 -
python自动化(六)持续集成:1.docker技术讲解
一.初识docker1.什么是dockerdocker是一个开源的应用容器引擎,基于Go语言开发,docker可以让开发者打包他们的应用及依赖包到一个轻量级、可移植的容器,然后发布到任何流行的系统。在项目开发过程中,项目环境的搭建与维护十分繁杂。如果将我们的项目及其依赖的服务打包成一个独立的环境空间。当我们需要部署项目时,只需要启动该环境空间服务。这样可以大大减少我们维护环境的工作,而docker就是这样一个独立的环境空间。2.docker的优点3.docker与虚拟机docker原创 2021-05-21 21:58:41 · 1087 阅读 · 7 评论 -
python自动化(五)接口自动化:5.接口管理平台
一.为什么需要接口管理平台在项目开发过程中,我们需要开发维护大量的接口。尤其是现在前后端分离模式的流行,需要我们在开发过程中维护大量的接口文档。当文档数量过多时,文档的维护难度也大大增大。所以使用一个方便的接口管理平台来管理我们的接口及其相关文档十分重要。二.YAPI平台1.YAPI平台简介YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE、iOS和Android工程师共同组成的最具想象力、创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的、打通前后端及QA的接口管理平台原创 2021-05-20 22:10:26 · 1371 阅读 · 11 评论 -
python自动化(五)接口自动化:4.接口自动化框架搭建实战
一.业务分析我们这里以企业微信的添加成员业务为例,来讲解我们的自动化测试框架。企业微信接口文档:https://work.weixin.qq.com/api/doc/90000/90135/90195二.框架搭建实战1.框架目录结构分析data:存放测试用例数据的目录。images:存放项目图片的目录。logs:存放日志文件的目录。my_config:存放配置文件的目录。my_tools:存放公共方法代码的位置。page_obj:存放page类代码的目录。test_case:存原创 2021-05-19 22:49:07 · 8464 阅读 · 14 评论 -
python自动化(五)接口自动化:3.接口自动化测试框架理论
一.接口测试理论1.为什么需要接口测试单元测试:pytest, python -> 直接对代码进行测试(可以直观有效的反馈错误,代价最小)接口测试:requests -> 对服务器发送请求 (直接与服务器进行交互,代价中等)UI测试:selenium, appium -> 对存在 UI 界面的应用进行测试(以用户视角进行测试,代价最大)因为UI测试的代价太大,所以在项目测试中,接口的测试也是非常重要的。它可以较UI测试更快一步的发现bug,且修改bug的代价也较小原创 2021-05-19 21:02:07 · 1052 阅读 · 1 评论 -
python自动化(五)接口自动化:2.接口测试requests模块
一.requests介绍requests模块是python的第三方库,使用它我们可以非常方便的发起get,post等接口请求。并且获取接口的返回值。在自动化中我们常常使用requests模块来编写接口自动化测试用例。requests的官方文档为:https://docs.python-requests.org/zh_CN/latest/二.requests详解1.安装pip install requests2.常用API2.1发送请求相关的API(1) 发送get请求APIr原创 2021-05-18 22:15:05 · 1831 阅读 · 12 评论 -
python自动化(五)接口自动化:1.接口测试基础
一.接口测试价值与体系二.常见的接口协议1.TCP/IP协议TCP/IP协议是在OS7层模型上总结生成的。TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。网络层:负责路由以及把分组报文发原创 2021-05-17 21:55:54 · 4167 阅读 · 22 评论 -
python自动化(四)app自动化:7.专项测试讲解
一.常见的测试手段二.专项测试的种类三.APP的启动性能1.启动性能介绍启动分为冷启动和热启动,首页启动。冷启动:应用程序首次启动,进程首次创建并加载资源的过程;热启动:应用程序启动后点“back”键、“Home”键,应用程序退到后台,并未被完全“杀死”的状态,再次启动;首页启动:包括了首页动态的加载时间冷启动启动App命令:adb shell am start -W -n package/activity停止App命令:adb shell am force-stop pack原创 2021-05-16 15:28:25 · 406 阅读 · 2 评论 -
python自动化(四)app自动化:6.常见的UI自动化测试平台工具
一.自动化遍历测试技术1.为什么需要自动化遍历二.Android monkey测试工具1.简介2.安装3.使用三.Android maxim测试工具1.简介2.安装下载代码包:git clone https://github.com/zhangzhao4444/Maxim.git将framework.jar和monkey.jar两个jar包,push到手机目录,推荐/sdcardadb push framework.jar /sdcardadb push原创 2021-05-15 20:28:20 · 604 阅读 · 3 评论 -
python自动化(四)app自动化:5.UI自动化前沿技术
本章节主要大概讲解UI自动化的一些前沿技术。所以该章节看看就好????。如果有需要的同学可以自行深入研究。一.测试前沿方向二.测试左移自动化遍历是目前测试左移的一个重要方法,但自动化遍历不涉及到业务,所以其测试覆盖并不能很好保证。所以未来的方向是app行为的预知探测。可以通过源代码去推测app的行为。未来UI自动测试左移前沿方向:1.黑盒遍历:开发代码完成后,使用黑盒遍历自动探测测试,行业已实现2.白盒遍历:开发代码完成后,自动识别代码,获得对应的界面数据,控件布局,控件的事件绑定等等,根原创 2021-05-15 19:48:23 · 336 阅读 · 2 评论 -
python自动化(四)app自动化:4.appium详解
一.appium desktop简介Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。它是继承自selenium的webdriver,所以它支持selenium的大部分API,且也有一些特殊的使用方式。appium desktop是一款C/S架构的软件,其内集成了appium service。我们一般主要使用appium desktop来完成元原创 2021-05-14 21:05:52 · 2761 阅读 · 9 评论 -
selenium定位悬浮元素
1.前沿我们在定位页面悬浮元素时,往往会出现这种情况。就是某个元素需要鼠标移动到另一个元素上才会出现,如果鼠标移开则会消失。这种情况会导致我们定位十分困难。针对这种情况我们可以使用浏览器开发模式中的sources来处理。2.sources开发者模式下的sources,可以将页面元素暂停下来。供我们定位一些悬浮的元素。方法:打开待定位的页面使用F12打开开发者模式进入sources模式鼠标移动到元素上,使悬浮元素出现使用F8暂停页面定位页面悬浮元素使原创 2021-05-13 22:37:15 · 3621 阅读 · 0 评论 -
python自动化(四)app自动化:3.常用的adb命令
一.adb工具简介1.什么是adb工具adb(android 调试桥)用于电脑和 android 手机的连接,可以通过 adb 工具,用电脑来操控手机。adb 是谷歌提供的一个开发用的辅助工具,包含在 android studio 中。谷歌后来提供了单独的平台工具的包(https://developer.android.google.cn/studio/releases/platform-tools),包含了adb。另外各个 android 模拟器中也包含了 adb 工具。2.adb工具的原理adb原创 2021-05-13 22:15:07 · 550 阅读 · 1 评论 -
python自动化(四)app自动化:2.Android Studio
Android Studio是Android程序的开发工具,集成了sdk和模拟器。我们做app自动化测试时,可以使用Android Studio来布置sdk和模拟器。从而不需要再额外安装Android sdk工具。一。安装Android Studio1、确保安装java环境,即是否安装有JDK。如未安装,请参考上篇文章。2、Android Studio下载:链接:https://pan.baidu.com/s/1C4xVv78dbVA6fwR2MmS9Vw 提取码:rr83 3、新建一个名为a原创 2021-05-11 23:23:22 · 621 阅读 · 0 评论 -
python自动化(四)app自动化:1.环境搭建
一.环境搭建1.配置jdk,这里推荐jdk1.8版本(1)进入官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html(2)运行exe文件,一直下一步即可(3)配置java环境变量第一:配置JAVA_HOME第二步:配置path第三步:配置classpath2.配置Android SDK(1)进入网站下载安装包:http://tools.android-studio.org/inde原创 2021-05-11 23:02:03 · 245 阅读 · 2 评论 -
python自动化(三)web自动化:7.测试框架实战三之并发执行用例
一.多进程并发执行测试用例当我们的自动化进行到一定程度时,用例数量将十分庞大。也许执行一遍用例就会花费几个小时。这时使用分布式来并行执行用例将十分重要。pytest框架可以使用pytest-xdist来十分方便的进行分布式测试。(1)pytest-xdist讲解安装pip install pytest-xdist使用:多cpu并行执行用例,直接加个-n参数即可,后面num参数就是并行数量,比如num设置为3pytest -n 3pytest -n auto # 自动识别cpu个原创 2021-05-11 22:27:04 · 641 阅读 · 2 评论 -
python自动化(三)web自动化:6.测试框架实战二之页面page类、用例编写、失败截图及测试报告
一.页面page类编写根据PO模式原理,我们需要把页面的常用方法封装到页面page类中,编写测试用例时直接调用对应的方法即可。我们本次以自动测试百度搜索和登录两个功能为例来讲解。因为搜索功能在首页,所以我们需要完成首页和登录页两个page页面类。(1)首页page类的封装#! /usr/bin/python# -*- coding: utf-8 -*-from pages.base_page import BasePagefrom etc.config import LOGGERfrom原创 2021-05-10 23:33:02 · 691 阅读 · 1 评论 -
python自动化(三)web自动化:5.测试框架实战一通用方法封装、配置文件、basepage基类封装
我们以百度为例来实战讲解测试框架的搭建。一.创建框架目录cases:用例文件管理目录datas:用例数据文件管理目录etc:配置文件管理目录logs:日志目录pages:pageobject文件管理目录plugins:第三方插件管理目录,例如存放chromedriver.exe文件reports:测试报告目录tools:通用方法代码文件管理目录二.完成通用方法的封装在编写测试用例代码前,我们可以先完成日志打印,文件读取等公共方法的封装。供后续用例编写时使用。(1)日志方法封原创 2021-05-09 23:39:09 · 1089 阅读 · 0 评论 -
python自动化(三)web自动化:4.测试框架讲解
测试框架介绍测试框架简单可以理解为一定的目录结构,这些目录结构分别实现了公共代码的封装,日志,用例的封装,测试报告等。测试框架就是将公共方法,日志,测试报告,截图,数据驱动等独立封装出来。测试框架的一个重要特性就是可移植性,即针对不同的业务项目,只需要单独写业务代码,其他模块都可以通用。测试框架讲解cases:cases目录主要用来存放测试用例的代码文件datas:datas目录主要用来存放用例中的数据文件etc:etc目录用来存放自动化测试中的配置文件pages:pag原创 2021-05-07 21:23:15 · 689 阅读 · 0 评论 -
python自动化(三)web自动化:3.PO设计模式
1.pageObject模式pageObject的核心思想,就是将一个页面封装成一个pageObject类。将页面上的主要元素的操作细节写成一个个方法。在写测试用例时我们就直接调用对应的pageObject类的接口,而不是在用例中去写操作细节。这样将使我们的代码维护性大大加强。2.pageObject的六大原则用公共的方法去代替页面的服务(将页面主要元素的操作细节,封装成公共方法)封装的方法,不要暴露太多的细节给外界。而是以接口的形式供外界调用断言不要跟操作细节一起封装在pageObj原创 2021-05-07 20:37:53 · 377 阅读 · 1 评论 -
python自动化(三)web自动化:2.web自动化工具selenium讲解
一.selenium简介1.什么是seleniumSelenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。2.selenium三大组件WebDriver:是selenium提供的一个API,用于操作浏览器。IDE:是selenium提供的一个插件,可以录制用户的操作Gri原创 2021-05-07 20:25:39 · 972 阅读 · 1 评论 -
python自动化(三)web自动化:1.pytest框架讲解+集成allure
一.什么是pytest我们在编写自动化脚本时,需要一套框架来管理我们的测试用例。这样我们的用例才会更加灵活,pytest就是这么一个框架。pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:简单灵活,容易上手,文档丰富;支持参数化,可以细粒度地控制要测试的测试用例;能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);pytest具有很多第三方插件,并且可以自定义扩展,比较好原创 2021-05-05 17:50:03 · 1833 阅读 · 2 评论 -
python自动化(二)前端基础:3.JavaScript基础
一.JavaScript简介JavaScript是一种脚本语言,可以在浏览器中直接运行。在传统的网站前端中我们一般使用HTML来搭建我们的页面骨架,使用CSS来渲染页面样式。这样页面的静态模式就基本定型了,而对于页面的动态行为则可以使用JavaScript来实现。HTML页面中引用JavaScript的两种方式:外部引用:html文件中时使用script标签,这时script需要添加一个属性src,src中写js文件的路径。<!DOCTYPE html><html>&l原创 2021-04-28 22:02:17 · 435 阅读 · 1 评论 -
python自动化(二)前端基础:2.CSS基础
一.CSS简介CSS我们可以简单的理解为一种用来修饰HTML的层叠样式表。我们项目的前端页面往往是十分美观的,如果使用HTML自带的属性来设置页面的样式(字体,颜色,位置等)会十分麻烦,而CSS就是专门用来设置HTML样式的。CSS的优点:减少 HTML 页面体积 (CSS 效果 是针对多个 HTML 元素是可以复用的使网页维护简单 (样式和 HTML)+职责明确美化网页样式二.CSS的使用1.CSS的引用方式css样式的写法有三种:第一种:行内样式把样式写在标签内部,需要在标签中原创 2021-04-25 21:25:41 · 215 阅读 · 1 评论 -
python自动化(二)前端基础:1.HTML基础
一.HTML基本标签1.简介html的作用:定义整个页面“长”什么样,相当于网站的骨架。如何写html标签:安装webstorm软件。html格式:<!DOCTYPE html> ----定义文件类型为html<html> ----<html></html>之间是整个html的内容<head lang="en">原创 2021-04-25 19:44:40 · 232 阅读 · 0 评论 -
python自动化(一)基础能力:9.python基础上之正则表达式
一.正则表达式概述二.re模块讲解三.正则表达式字符讲解import reret = re.match("[hH]","Hello Python")print(ret.group())# 结果为Himport reret = re.match("[0-9]","7Hello Python")print(ret.group())# 结果为:7import reret = re.match("\d","7Hello Python")print(ret.group())原创 2021-03-31 23:19:16 · 211 阅读 · 0 评论 -
python自动化(一)基础能力:8.python基础上之数据库
一.MySQL简介二.安装MySQL三.SQL语句1.什么是SQL语句2.数据库操作语句3.数据表的操作语句4.操作表中数据5.数据的备份与恢复6.主键7.查询数据语句8.数据排序输出9.限制查询条件10.查询部分数据记录(限制行)11.函数-聚合函数12.函数-字符串函数13.函数-数学函数14.日期时间函数15.分组查询和过滤16.表的约束原创 2021-03-31 22:51:00 · 269 阅读 · 0 评论 -
python自动化(一)基础能力:7.python基础上之网络编程
一.网络编程1.网络编程基础2.Socket编程-简介3.Socket编程-udp编程为看到效果先安装网络调试助手NetAssist.exe3.1使用socket发送数据from socket import *s = socket(AF_INET, SOCK_DGRAM) #创建套接字addr = ('192.168.1.103', 8080) #准备目标方的地址,网络助手的地址data = "Hello Wrold"#发送数据时,python3需要将原创 2021-03-31 21:35:41 · 301 阅读 · 2 评论 -
python自动化(一)基础能力:6.python基础上之多进程,多线程
一.多进程进程》线程》携程—都是实现多任务的方式。线程存在于进程中,携程存在于线程中。1.多进程简介程序:是一个指令的集合进程:正在执行的程序;或者说:当你运行一个程序,你就启动了一个进程编写完的代码,没有运行时,称为程序,正在运行的代码,称为进程程序是死的(静态的),进程是活的(动态的)操作系统轮流让各个任务交替执⾏ ,由于CPU的执⾏速度实在是太快了, 我们感觉就像所有任务都在同时执⾏⼀样多进程中, 每个进程中所有数据(包括全局变量) 都各自拥有⼀份, 互不影响原创 2021-03-29 23:10:56 · 480 阅读 · 0 评论