一、 httpRunnerHttpRunner : 一款面向 HTTP(s) 协议的通用测试框架,只需要编写和维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装。 遵循 约定大于配置 的准则,在框架功能中融入自动化测试最佳工程实践。 追求投入产出比,一份投入即可实现多种测试需求。 1. 特征 支持以 YAML/JSON 格式定义测试用例 支持响应验证 支持初始化清除机制 支持套件级别的用例管理 支持 Pytest 命令(hrun 底层封装的 pytest) 支持 allure 生成测试报告 支持 性能测试 (底层 Locust) 2. 主流版本差异 二、 HttpRunner 安装httpRunner 使用 python 开发, 支持 Python 3.6 + 和大多数操作系统 安装: 1pip install httpRunner 验证: 123httprunner -V hrun -V 五大核心命令: httprunner : 主命令,用于所有功能 hrun ...
一、网络编程技术概述1.软件开发架构 应用类 — C/S 架构 C/S :客户端与服务器端架构,客户端 泛指 应用程序 EXE ,程序需要先安装才能运行,对系统环境依赖较大。 Web 类 — B/S 架构 B/S :浏览器端与服务器端架构,用户通过 HTTP 请求服务器端相关的资源。 2.网络通信要素 IP 地址 :互联网协议地址 端口 :设备与外界通讯交流的出口 传输协议 IP 地址 精确到 具体的一台电脑,而 端口 精确到 具体的程序 3.通信协议通信协议:互联网的核心就是由一堆协议组成,协议就是标准。 七层网络协议模型 二、Socket 通信流程1.Socket 概念Socket :是应用层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Sorcket 其实就是一个门面模式,它把复杂的 TPC/IP 协议族隐藏在 Socket 接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议。 1.websocket (应用层) :通过 HTTP 协议进行传输, 2.socket (传输层) :通过 TCP ...
Seleniumy元素定位Chrome 浏览器元素定位插件 — Ranorex Selocity 地址 : https://chrome.google.com/webstore/detail/ranorex-selocity/ocgghcnnjekfpbmafindjmijdpopafoe 一、 webUI自动化1. 什么是UI自动化测试 通过代码来模拟人的手工操作,执行测试内容 自动化是为了代替重复的手工操作,提高测试效率,不是为了装x 2. UI 自动化的价值 回归速度的对比,以前进行全量回归测试需要x天,现在有没有减少 负责功能测试的同事,是不是有更多的时间测试新需求了 自动化测试不是为了发现bug,而是为手工测试节省回归时间 3. UI 自动化原理 selenium 与 webdriver selenium 是一个用于web测试的工具,测试运行在浏览器当中 webdriver 对浏览器原生的api进行封装,使用这套api可以操作浏览器的操作页面元素、截屏等 我们使用selenium进行自动化,主要涉及三个方面: 测试脚本,就是你我写的代码 浏览器,目前支持所 ...
一、 删除本地配置文件删除 “C:\Users\My\AppData\Roaming\JetBrains” 文件夹下的所有文件 二、 点击 试用 30 天 三、 打开一个项目,将重置试用插件拖入 IDE重置试用插件下载:https://wwe.lanzoui.com/isAYjvr3evg
一. 安装1.1 Pytest 环境搭建安装:1pip install pytest 查看是否安装成功:1pip show pytest 1.2 命名规则 .py 测试文件必须以 test_ 开头(或者以 _test 结尾) 测试类必须以 Test 开头,并且 不能 有 init 方法 测试方法必须以 test_ 开头 断言必须使用 assert 1.3 pytest 输出的信息 . :用例通过 F :用例失败—没有语法报错 E :语法错误 1.4 运行参数 -s: 打印代码中 print 内容 -v: 打印更详细的执行信息, 包括 测试类、测试函数等 1.5 案例12345678910# 1- 封装测试类class TestLogin: # [({},{}),({},{})] @pytest.mark.parametrize('inData,respData', get_excelData2('登录模块', 'Login')) ...
一、 2D 转换(transform) 转换(transform):可以实现元素的位移、旋转、缩放等效果 2D 转换: 改变标签在二维平面上的位置和形状 如果 既有位移,又有旋转、缩放时,需要先写位移 再写其他,否则方向会跑偏 123/* 位移 旋转 缩放 */transform: translate(50% 50%) rotate(180deg) scale(1.2em); 代码示例 1234567891011121314151617181920212223242526272829303132333435363738394041424344<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-sca ...
一、 盒子模型 盒子模型: 就是把 HTML 页面中的布局元素看做一个矩形盒子,也就是能装内容的容器。css 盒子模型本质上时一个盒子,封装周围的 HTML 元素,它包括表框、内边距、外边距 和 实际内容。 去除无序列表前的小圆点:list-style: none; 1. 边框(border) border : 可以设置元素的边框。边框的大小会影响到盒子的大小 语法: 1border: border-width | border-style | border-color; 边框参数:| 属性 | 作用 ||———————|—————————————-|| border-width | 定义边框的粗细,单位是 px || border-style | 定义边框的样式 || border-color | 定义边框的颜色 | 样式参数: 参数 效果 none 没有表框 hidden 隐藏边框 solid 实现边框 dashed 虚线边框 dotted 点线边框 groove 3D 沟槽 ridge 3D 凸起 inset 3D 嵌入 o ...
v1.0需求: 实现动态数据 实现页面跳转 实现页面可视化 HTML 文件 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110{% load static %}<!DOCTYPE html><html lang="cn"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> ...
GitKraken 简体中文GitKraken 下载地址 : https://www.gitkraken.com/ 使用方法 目前支援版本: 8.1.0 将 原文件 strings.json 改名为 strings.en.json 至 Release 下载 strings.json 文件存放位置 Windows: %LOCALAPPDATA%\gitkraken\app-8.1.0\resources\app.asar.unpacked\src Mac: /Applications/GitKraken.app/Contents/Resources/app.asar.unpacked/src/strings.json Linux: /usr/share/gitkraken/resources/app.asar.unpacked/src 开启 GitKraken ,至 Preference -> UI Customization -> Language 切换语言
一、 对象1. 字面量创建对象1var obj = {}; // 一个名为 obj 的空对象 12345678var obg = { uname: "张三疯", age: 18, sex: "男", satHi: function () { console.log("hi~"); },}; 注意: 里面的属性 或 方法 采用键值对的形式; 多个属性 或 方法 中间用 逗号隔开; 方法冒号后面跟的是 匿名函数; 调用对象属性12345// 方法1console.log(obj.uname); // 张三疯// 方法2console.log(obj["age"]); // 18 调用对象方法1obj.satHi(); // hi~ 2. 利用 new Object() 创建对象1var obj = new Object(); // 创建一个名为 obj 的空对象 向对象中填写属性123456obj.uname = "张三疯"; ...