自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(56)
  • 收藏
  • 关注

原创 python中函数的参数

python函数参数

2022-08-13 22:09:11 1308 1

原创 jmeter阶梯线程组

阶梯式线程组

2022-08-06 12:29:03 725

原创 jmeter跨平台运行csv等文件

jmeter

2022-08-02 20:48:18 257

原创 jmeter分布式压测

jmeter分布式压测

2022-08-01 11:55:40 2628

原创 装饰器用法

一、前言学习装饰器之前,我们先了解下闭包。有时候我们想读取函数内部的变量,该怎么实现呢?如下def wrapper(): n=100print(n)结果:NameError: name 'n' is not defined很明显报错了,那我们要实现这个需求该怎么做呢?用闭包闭包:能够读取外部函数内的变量的函数,如下def wrapper(): n=100 def inner(): print(n)inner函数就是闭包,它能够读取wrapper

2022-05-15 11:04:28 266

原创 列表、字典、集合生成式

一、语法1.列表生成式'''列表生成式[ value for value in item if condition ... ]'''2.字典生成式'''字典生成式{key: value for item in iterator if condition ....}'''3.集合生成式'''集合生成式{value for value in item if condition ...}'''二、示例1.列表生成式'''列表生成式[ va

2022-05-14 23:43:41 164

原创 2、快速排序

一、前言快速排序思想:选择一个基准值,一趟排序下来,基准值左边部分都比基准值小,右边部分都比基准值大。基准值左边部分跟右边部分如此反复(递归),最终完成排序。二、分析#如下列表a=[6,2,7,4,2,5,10]由图可分析:以6为基准数,按照快速排序思想,基准数左边小于基准数,基准数右边大于基准数。我们把左指针看作基准数的左边,右指针看作基准数的右边,因此我们可以在右指针寻找比基准数小的放在左指针处,在左指针寻找比基准数大的放在右指针处。如右指针指向10,比基准数大,右指针向前继续寻找,

2022-03-27 13:16:13 560

原创 1、冒泡排序算法

一、前言冒泡排序思想:相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序。如下动画所示二、原理算法原理比较相邻的元素。如果第一个比第二个大,就交换他们两个三、分析#给定以下列表使用冒泡排序a=[11,2,6,4,2,5,10]由上图我们可知,相邻元素交换,一共需要N-1躺,每趟指针移动到哪里结束呢?由图可知,第一趟指向索引值为N-2,第二趟指向索引值为N-3…因此可写如下程序a=[11,2,

2022-03-26 17:40:07 800

原创 0、时间复杂度与空间复杂度

一、前言小明的代码运行一次要花5s, 占用内存5MB。小李的代码运行一次要花10s, 占用内存50MB。哪个人的代码更好呢?无疑是时间短,占用内存少由此可见, 运行时间的长短和占用内存空间的大小, 是衡量程序好坏的重要因素二、时间复杂度1、吃一个长度为10cm的面包,3s能吃1cm的面包,需要多长时间能吃完?3s*10=30s如果用一个函数来表达吃掉整个面包所需要的时间, 可以记作T(n)= 3n, n为面包的长度。2、类比程序:void eat1(int n){ for(in

2022-03-20 12:16:07 314

原创 python正则表达式匹配并替换为指定字符

一、re.sub(pattern, repl, string, count=0, flags=0)pattern 正则表达式repl 替换的字符串,也可为一个函数string 要被查找替换的原始字符串count 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配flag 编译时用的匹配模式,数字形式二、示例-1.脱敏日志内容 def format_userid(self,match): ''' 格式化用户id:

2022-01-31 12:06:14 7152

原创 mysql存储过程

一、概述存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程二、语法CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体>[过程参数[,…] ] 格式[ IN | OUT | INOUT ] <参数名> <类型>IN: 输入参数OUT: 输出参数INOUT:

2022-01-27 18:55:09 242

原创 mysql存储函数

一、概述存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。存储函数可以通过 return 语句返回函数值,主要用于计算并返回一个值。而存储过程没有直接返回值,主要用于执行操作二、语法CREATE FUNCTION sp_name ([func_parameter[...]])RETURNS type[characteristic ...] routine_body三、示例1.使用 CREATE FUNCTION 创建查询 tb_student 表中某个学生姓名的函数:

2022-01-27 18:54:50 183

原创 mysql视图

一、概述1.MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。2.数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。3.视图可以从原有的表上选取对用户

2022-01-27 18:54:33 118

原创 8、jmeter命令行模式运行

一、参考链接jmeter官网二、使用E:\apache-jmeter-5.4.1\bin\jmeter -n -t C:\Users\one_day_i_will\Desktop\test\test_baidu.jmx -l C:\Users\one_day_i_will\Desktop\test\test_baidu.jtl -e -o C:\Users\one_day_i_will\Desktop\test\report

2022-01-09 11:19:34 287

原创 python操作yaml

一、参考链接这里是引用二、python类型转换为yaml# -*- coding: utf-8 -*- # @Time : 2022/1/2 21:53 # @Author : lujunxian # @File : test_yaml.pyimport yamlclass TestYaml(): with open('./data.yaml','w',encoding='utf-8') as f: request={ 'test':{

2022-01-02 22:13:29 490

原创 python操作excel文件

一、参考链接https://openpyxl.readthedocs.io/en/stable/usage.html二、写入excel文件from openpyxl import Workbook, load_workbookfrom openpyxl.worksheet.worksheet import Worksheetclass TestExcel(): def test_write(self): wb= Workbook() ws=wb.active

2022-01-02 21:50:14 567

原创 python操作ini文件

一、参考链接https://docs.python.org/zh-cn/3/library/configparser.html二、生成ini文件# -*- coding: utf-8 -*- # @Time : 2022/1/2 18:39 # @Author : lujunxian # @File : test_ini.pyimport configparserclass TestIni(): config=configparser.ConfigParser() co

2022-01-02 19:09:17 795

原创 python操作json文件

一、参考链接https://docs.python.org/zh-cn/3/library/json.html二、python类型转换成json1、 def test_to_json(self): ''' python字典类型转换为str格式的json :return: ''' request = { 'url': 'www.XX.com', 'params': {

2022-01-02 18:32:45 312

原创 python操作csv文件

一、参考链接https://docs.python.org/zh-cn/3/library/csv.html?highlight=csv#module-csv二、写入csv文件1、方式一 def test_write(self): with open('./data.csv','w',encoding='utf-8') as f: cw= csv.writer(f) cw.writerow(['test','csv','demo

2022-01-02 17:53:05 944

原创 4、httprunner参数化

一、parameters参数运行次数是笛卡尔积的计算方式,如下将运行2*2=4次yml方式config: name: 登录幕布 variables: {} parameters: phone: ['13104978922','13722349423'] password: ['123456','2345'] verify: falseteststeps:- name: /v3/api/user/phone_login

2021-11-19 12:12:02 545

原创 3、httprunner基本用法

1、.env文件base_url,配置信息等可以写在里面然后用 ${ENV()} 引用login.ymlconfig: name: 登录幕布 variables: {} verify: falseteststeps:- name: /v3/api/user/phone_login request: headers: accept: application/json, text/plain, */*

2021-11-19 12:03:57 789

原创 2、httprunner常用命令

1、初始化脚手架httprunner startproject 项目名称2、转化har文件为yml/json/pytest默认转化为pytesthar2case 文件路径/文件转化为ymlhar2case 文件路径/文件 -2y转化为jsonhar2case 文件路径/文件 -2j3、转化yml/json为py文件(pytest)hmake yml/json文件名 4、运行yml/json/pytest文件hrun yml/json/pytest文件名

2021-11-19 12:03:48 512

原创 1、初识httprunner

1、安装这里我用的是阿里云的镜像源pip install httprunner -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com2、初始化脚手架

2021-11-19 12:03:39 74

原创 7、生成allure报告

1、生成json文件#addopts= -vs --alluredir ./temp --clean-alluredir2、根据生成的json生成htmlimport pytestimport osif __name__ == '__main__': pytest.main() os.system("allure generate ./temp -o ./report --clean")

2021-07-23 21:17:18 202

原创 6、pytest.ini

1、pytest.ini指定用例目录,文件,类,函数注意pytest.ini 文件编码必须为ANSI格式,否则可能读取失败[pytest]#addopts= -vs -m="smoke or userlogin"#addopts= -vs --alluredir ./temp --clean-allurediraddopts= -vstestpaths=./day05 #目录python_files = test_*.py *_test.py

2021-07-23 21:17:08 95

原创 5、pytest参数化

1、基本方式@pytest.mark.parametrize(“args”,[“胡歌”,“彭于晏”,“甄子丹”])yaml2、示例1、@pytest.mark.parametrizeimport pytestclass TestDay04(): @pytest.mark.parametrize("args",["胡歌","彭于晏","甄子丹"]) def test_day04_param(self,args): print(args) @pyte

2021-07-23 21:17:00 75

原创 4、pytest前置后置

1、基本方式setup teardown setup_class teardown_class@pytest.fixture() 指定部分用例前置后置conftest.py 全局前置后置2、示例1、setup teardown setup_class teardown_classimport pytestclass TestDay03(): def setup_class(self): print("在每个类执行前的初始化工作 :创建日志对象,数据库

2021-07-23 21:16:53 543

原创 3、pytest常用装饰器

1、常用装饰器@pytest.mark.skip(reason=“跳过01用例”) 跳过用例@pytest.mark.skipif(age>=18,reason=“age大于18跳过”) 满足条件跳过@pytest.mark.run(order=2) 指定用例执行顺序@pytest.mark.smoke (自定义标识,smoke为自己定义)...

2021-07-23 21:16:44 970

原创 2、pytest基本使用

1、基本参数-v 用于显示每个测试函数的执行结果-s 用于显示测试函数中print()函数输出2、基本使用1、代码中运行 pytest.main(["-vs"])2、控制台运行pytest -vs ./day01/test_day01.py

2021-07-23 21:16:36 62

原创 1、pytest环境准备

1、环境准备pytestpytest-html 生成html报告pytest-xdist 多线程分发执行pytest-ordering 指定执行顺序pytest-rerunfailures 失败用例重跑allure-pytest allure插件官网:https://docs.pytest.org/en/latest/index.html...

2021-07-23 21:16:24 58

原创 2、adb命令

一、常用命令adb devices 打印当前连接的所有模拟器或者设备aapt dump badging apk名称 查看appPackage的包名以及appActivity名adb install test.apk 直接安装应用adb install -r test.apk 替代存在的应用,不会删除应用数据,用于更新应用adb uninstall com.example.application 直接删除应用和所有数据adb uninstall -k com.example.applicat

2021-07-13 17:07:35 77

原创 7、jmeter写入接口返回数据到excel

一、数据准备1、测试数据 test_data2、测试用例 test_case二、jxl.jar包和CWOutputFile.jar准备1、jxl.jar(java操作excel表格的工具类库)2、CWOutputFile.jar(自己写的java代码打包成jar)在idea写如下代码import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStre

2021-07-13 17:06:56 897

原创 6、jmeter提取cookies

一、提取cookies1、添加配置元件->http cookies管理器2、添加配置元件->http 信息头管理器(利用正则,json表达式)示例1:http 信息头管理器1、添加登录请求2、添加后置处理器->正则表达式提取器3、添加http信息头管理器4、添加学生查询请求接口5、查看结果树...

2021-07-13 17:06:44 438

原创 5、jmeter提取器

一、提取器方法xpath提取器 (适用于返回结果是html和xml)正则表达式提取器json表达式提取器(适用于返回结果是json格式)正则表达式规则:示例1:正则表达式1、提取京东菜单分类到百度搜索,测试正则2、编写正则表达式3、添加逻辑控制器->foreach控制器,循环赋值给百度请求4、运行查看结果树示例2:json表达式1、提取星座运势返回的json,准备http请求2、测试json表达式3、添加后置处理器->json提取器4、查

2021-07-13 17:06:25 653

原创 4、jmeter连接数据库

一、连接mysql示例1:基础查询准备安装mysql驱动下载地址:https://dev.mysql.com/downloads/connector/j/选择:platform independentWindows选择第二个zip压缩包2、解压后在测试计划选择mysql驱动3、添加配置元件->JDBC Connection Configuration 填写如下4、添加取样器->JDBC Request 填写如下5、添加监听器->查看结果树示例2:参数化

2021-07-13 17:06:14 73

原创 3、jmeter参数化

一、参数化三种方式配置元件->CSV数据配置文件(适用于大量数据)用户参数其他示例1:CSV1、用Excel准备测试数据,另存为CSV格式2、配置元件->CSV Data Set Config 填写如下3、线程组->线程数设置为12(12个数据,用12的线程分别执行)4、运行,然后查看结果数...

2021-07-13 17:06:05 100

原创 2、jmeter基本使用

一、基本使用步骤在测试计划下->新建线程组线程组->取样器->http请求监听器->查看结果数用聚合数据练习:星座运势查询

2021-07-13 17:05:56 58

原创 4、常用操作

一、常用操作滑动屏幕 swipe(start_x, start_y, end_x, end_y)

2021-07-13 17:05:14 65

原创 3、元素定位几种方式

一、元素定位几种方式通过id定位元素 resource-id通过ClassName定位 classname通过AccessibilityId定位 content-desc通过AndroidUiAutomator通过xpath定位二、示例resource-iddriver.find_element_by_id("com.ss.android.article.lite:id/qz")classnamedriver.find_element_by_class_na

2021-07-13 17:05:04 555

原创 1、环境搭建

一、工具准备及环境搭建安装Node.js安装JDK,及配置环境变量安装SDK,及配置环境变量安装Appium桌面版本真机or模拟器(这里用夜神模拟器)二、模拟器配置打开安装目录,进入到bin目录(比如:E:\Nox\bin)把安装好的Android SDK里的adb.exe文件(比如我的在E:\Android\android-sdk\platform-tools目录下)复制到该目录覆盖掉该目录已存在的adb.exe文件删掉该目录的nox_adb.exe文件,再复制一份adb.exe并重

2021-07-13 17:04:33 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除