11 2021 档案
鼠标操作、toast、用户输入、快捷键操作
摘要:## 鼠标悬停```pythonel = browser.find_element('xpath', "//a[contains(text(),'HTML / CSS')]") # actionchains 下面动作方法必须要再加上 perform 才能生效ActionChains(browser)
阅读全文
alert弹框操作
摘要:## alert出现频率不高。```pythonbrowser.switch_to.alert.accept() 实现弹框的方式:1、原生的 alert, prompt, 样式很丑,所以现在用得少2、框架vue.js 实现了 ui 效果,弹框,就是普通的元素。 出现弹框加个 browser.swit
阅读全文
窗口切换
摘要:import time from selenium import webdriver from selenium.webdriver import ChromeOptions from selenium.webdriver.chrome.service import Service from sel
阅读全文
selenium的二次封装
摘要:from selenium.webdriver import Chrome from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selen
阅读全文
xpath对比css定位
摘要:## 元素找不到可能的原因(实战技巧)- 元素定位的表达式不对。 - 没有等待,或者是等待时间太少- 你根本不在这个页面。(另外一个窗口,在一个iframe当中。)## 元素定位不要用动态生成值如果属性存在以下特征,最好不要用该值作为元素定位的依据:- 属性值有数字 12- 不认识的莫名其妙的字符串
阅读全文
postman中的将token设置为公共参数
摘要:在Tests中写好代码,调用登录接口后点击右上角眼睛查看是否被设置为公共参数 var data = pm.response.json() var token = data.data.token_info.token; var member_id = data.data.id; pm.environm
阅读全文
web自动化测试等待的方法
摘要:## 等待的第一种方法 - 强制等待, time.sleep(3)- 隐性等待, 智能等待元素被加载, 全局只需要设置一次, 只能等待元素被加载- 显性等待,非全局 - 真的很麻烦,不容易理解。 - 你可以自己设置某种条件,如果条件满足了,就返回;如果条件不满足,就继续执行 - 等待某个元素可以被点
阅读全文
html基础
摘要:## HTML- 每个标签都有自己独特的能力 <input> 输入框 <h2>- 标签中通过属性也可以获取某种能力- input 输入框- h2 标题- div 分块,换行- a 链接- img 图片- checkbox radio 多选、单选- id- name- form 表单格式- table
阅读全文
元素定位方式
摘要:## web自动化测试核心内容- 元素定位- 网页操作- 等待- pytest + selenium- 项目实战 自动化去查找元素的方法:- 1、网页的页面结构(selenium)- 2、坐标- 3、图像识别 ## 什么是页面结构由各种各样的网页标签构成,形成很复杂的树形结构标签名、属性、text文
阅读全文
selenium和浏览器驱动的基本使用
摘要:## selenium浏览器自动化工具 (使用代码控制浏览器,执行浏览器操作)+ 测试工具(unittest / pytest) ## 安装 selenium1,浏览器(谷歌,火狐)2,webdriver 驱动,下载地址:https://npm.taobao.org/mirrors/chromedr
阅读全文
接口加密方式
摘要:接口鉴权方式: 1) token鉴权2) timestamp+token+sign 鉴权,其中sign= RSA(token 前50位+时间戳) timestamp+token+sign方式鉴权: 当X-Lemonban-Media-Type请求头值为lemonban.v3时,接口使用timesta
阅读全文
Dockerfile常用命令
摘要:FROM 必须写,表示从哪个基镜像开始构建。 FROM untuntu #从 0 开始 FROM scratch WORKDIR WORKDIR /usr/share # 相当于 cd /usr/share COPY / ADD 添加本地文件。一般使用COPY COPY localfile /des
阅读全文
docker安装Jenkins和构建python容器
摘要:准备工作:## 1.编写Dockerfile 定制版的镜像,以下注释需去掉尽量选择国内源,并更新下pip工具 RUN pip3 install --upgrade pipRUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghu
阅读全文
docker笔记
摘要:## docker | k8s为什么要使用 docker? 使用docker 搭建环境,避免出现在A处正常运行,在B处各种报错的环境问题。 项目中常见的语言, web框架,数据库: Java + spring boot + Mysql + redisPHP + yii + oraclePython
阅读全文
docker安装和常用命令
摘要:每个系统安装docker的步骤不尽相同,建议参考官方文档安装, 点此跳转https://www.docker.org.cn/page/resources.html 以下仅记录了centos 安装docker的步骤: 卸载老的docker: sudo yum remove docker \docker
阅读全文
pytest框架
摘要:1.动态生成报告 2.夹具作用域 3.参数化 4.用例筛选 5.失败重跑 pytest的run文件,生成动态的测试报告 pytest夹具的作用域 共享 fixture1,将所有的夹具全部放到 一个固定的模块文件, conftest.py2, 所有导入夹具的操作就可以省略, pytest运行时会自动在
阅读全文
mock接口
摘要:## mock- 什么是 mock- 为什么要使用 mock- 怎么使用(两种方法)通过代码去制造假的输出。(结果)接口自动化测试客户端mock:通过代码去模拟假的接口返回数据。(访问接口的过程就可以省略) 服务 mock (mock server)开发的接口是在server, 真实的服务器。我就自
阅读全文
pytest测试框架的使用
摘要:## pytest第三方的框架,所以需要安装:pip install pytest对于单元测试框架的核心功能:- 收集用例, 进入目录,运行 pytest - 指定用例函数的定义规则(test_)支持普通函数,测试类- 自动执行用例, 如果不能识别,需要修改 pycharm 默认的执行器改成 pyt
阅读全文
pytest命令行执行导包失败
摘要:在使用命令行执行pytest中偶然会遇到导包失败的操作,但使用pycharm执行是正常的,这里的解决方法是把根目录下的__init__文件去掉,就可以命令行执行了
阅读全文
导包失败解决方法
摘要:import osimport syssys.path.append(os.path.abspath(__file__).split("demo_pytest")[0]) # 把项目目录添加到环境变量中,避免导包失败
阅读全文
jenkins配置测试报告和发送邮件
摘要:测试报告生成: 1.安装HTML报告插件 2.配置构建后操作 3.配置安全策略,System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""),为了能加载外部文件 配置邮箱,发送邮件 可编辑模板: 链接https://www.cn
阅读全文
html报告模板
摘要:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwi
阅读全文
jenkins搭建
摘要:1.安装JDK,建议使用1.8版本 2.下载jenkins.war,在目录下执行java -jar jenkins.war --httpPort=9001,运行成功如下图 3.浏览器打开,127.0.0.1:9001,根据提示输入密码 4.可以跳过插件安装 5.设置管理员账号 6.配置URL地址,当
阅读全文
自动化测试需要注意的知识点
摘要:自动化测试需要注意的知识点: 读取数据库,读取excel, 读取 yaml, log日志, 测试:单元测试框架 unittest / pytest 自动化测试的思想:ddt 数据驱动, 参数化 前置处理( setUp ) 数据伪造,数据生成。 fk 手机号码。 接口关联。 -方法1: setUp #
阅读全文
业务流测试
摘要:需求:完成投资的业务流测试。 步骤: 审核项目、投资等步骤依赖于前面登录、添加项目的操作 思路: 1.对数据进行预处理,接口访问。数据替换,字符串转为字典,动态获取类的属性 2.访问接口,得到接口的返回结果 3.从响应结果中读取下面接口需要的数据,设置为同名的属性:#invest_token# 4.
阅读全文
python中的re模块-使用正则表达式
摘要:""" re模块各方法区别 search:若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个 findall:返回string中所有与pattern相匹配的全部字串,返回形式为数组。 finditer:返回
阅读全文
git命令的使用
摘要:## git / svn版本控制的软件。 第一版,第二版,第三版, v1, v2, v3, v1, v2-betav1, v2, v3, v4版本控制的场景: 1,回滚版本, 2,代码记录追踪git 比较主流 实现版本控制svn ## github / gitlab / gitee(码云)基于 gi
阅读全文