自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

转载 Jenkins——02 Pipeline 分支与Pull请求

创建多分支Pipeline多分支Pipeline项目类型使您可以实现不同Jenkinsfiles在同一个项目的不同分支。在Multibranch Pipeline项目中,Jenkins自动发现,Pipeline和执行包含Jenkinsfile源代码控制的分支Pipeline。这不需要手动Pipeline创建和管理。创建多分支Pipeline:单击Jenkins主页上的New Item。输入Pipeline的名称,选择多Multibranch Pipeline,然后单击确定Jenk.

2022-05-05 18:55:04 568

转载 Jenkins——00 介绍/入门/Jenkinsfile使用

Jenkins是一个开源的持续集成的服务器,Jenkins开源帮助我们自动构建各类项目。Jenkins强大的插件式,使得Jenkins可以集成很多软件,可能帮助我们持续集成我们的工程项目。主要用于:持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。 监控一些定时执行的任务说明本说明是针对使用需要Java 8的“独立”Jenkins发行版。还建议使用超过512MB RAM的系统。下载Jenkins。 在下载目录中打开终端并运行java -jar .

2022-05-05 18:22:48 7835 1

转载 pytest——test case之间参数传递

前言我们在做接口自动化测试的时候,会经常遇到这种场景:接口A的返回结果中的某个字段,是接口B的某个字段的入参。如果是使用postman,那我们可以通过设置后置变量,然后在需要使用的地方通过{{}}的方式来进行调用。但是如果是使用自己写的测试框架中要如何实现呢?我想到的是如下三种方法。首先说明一下,以下三种方式均是通过python+ pytest来实现的一、通过conftest创建全局变量conftest.py文件是pytest框架中很有用的一个东西,首先看下官方文档中的解释:大.

2022-04-07 19:49:49 2131 1

原创 gcc编译出现internal compiler error: Killed (program cc1plus)

internal compiler error: Killed (program cc1plus)在640M 内存的vps做编译的时候出现了上述错误.几经搜索, 才发现可能是系统没有交换分区, 编译过程中内存耗尽, 导致了编译中断…解决方式也很简单, 就是增加一个交换分区:1. 创建分区文件, 大小2Gdd if=/dev/zero of=/swapfile bs=1k count=20480002. 生成swap 文件系统mkswap /swapfile3. 激活swa

2021-07-12 16:39:13 1667

原创 python——serial

一。classserial.Serial__init__(port=None,baudrate=9600,bytesize=EIGHTBITS,parity=PARITY_NONE,stopbits=STOPBITS_ONE,timeout=None,xonxoff=False,rtscts=False,write_timeout=None,dsrdtr=False,inter_byte_timeout=None)

2021-07-11 23:24:23 157

原创 python——paramiko详解

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台。利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输。一、SSHClient类SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPCl

2021-07-05 19:02:37 21266 4

原创 python——argparse

argparse是python用于解析命令行参数和选项的标准模块,类似于linux中的ls指令,后面可以跟着不同的参数选项以实现不同的功能,argparse就可以解析命令行然后执行相应的操作。argparse 使用使用argparse 配置命令行参数时,需要三步: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 parser = argparse.Argumen

2021-07-01 21:17:12 584

原创 C/C++——数组指针和指针数组

数组指针一、区分首先我们需要了解什么是数组指针以及什么是指针数组,如下图:int *p[5]; 存放整型指针的数组int (*p)[5]; 数组指针数组指针的意思即为通过指针引用数组,p先和*结合,说明了p是一个指针变量,指向一个大小为5的数组。所以,int (*p)[5]即为一个数组指针。int *p[5]则是一个大小为5且存放整型指针的数组。int (* arrPtr)[10] = NULL; // 一个指针,它指向一个有10个int元素的数组二、数组元素的指针...

2021-06-23 14:34:30 942

原创 git使用小tips

1. git 在远程仓库创建的分支为啥在本地分支看不到git remote update origin --prune

2021-06-17 17:08:46 116

原创 const在指针前和指针后的区别

const在指针前面:指针指向的内容不可修改,但是指针本身的内容可以修改。int a = 10;int b = 20;int const *pa = &a;*pa = 30; 是错误的pa = &b; 是对的const在指针后面:指针本身的内容不能修改,但是指针指向的内容可以修改。int a = 10;int b = 20;int *const pa = &a;*pa = 30; 是对的pa = &b; 是错误的...

2021-04-08 19:00:29 972

转载 CAN总线通信——CAN通信的数据帧(Data Frame)

CAN总线通信——介绍下CAN通信的数据帧(Data Frame)。CAN总线以“帧(Frame)”形式进行通信。“数据帧(Data Frame)”,顾名思义,是用来传输数据的。CAN总线的数据帧有标准格式(Standard Format)和扩展格式(Extended Format)的区分,标准帧的格式如下图:数据帧可以分为七段:1)帧起始(Start Of Frame-SOF): 1bit,显性信号,表示数据帧(或远程帧)的开始。2)仲裁段(Arbitration Field):包

2021-03-26 16:09:30 9052

原创 GDB调试学习

目录一、gdb调试简介及常用命令1、编译代码并启动gdb2、调试选项2.1 查看源码(list,l)2.2 设置断点(break,b)2.3 运行程序(run,r)2.4 start2.5 单步调试(next,n)2.6 执行多行代码(continue,c)2.7打印变量的值(print,p)2.8自动打印变量的值(display,d)2.9 whatis 查看变量类型2.10以更详细的方式显示变量var的类型(pytype)2.11 删除...

2021-03-23 16:44:44 508

原创 GCC学习笔记

一、前言GCC是GNU工具链的集合,包含编译器、汇编器、链接器、解释器等。它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。二、gcc的特点gcc是一个可移植的编译器,支持多种硬件平台。例如ARM、X86等等。 gcc不仅是个baidu本地编译器,它还能跨平台交叉编译。所谓的本地编译器,是指编译出来的程序只能够在本地环境进行运行。而gcc编译出来的程序能够在其他

2021-03-22 16:08:37 1006 3

原创 Linux——打造vim IDE~.vimrc配置

呕心沥血,终于配好了vim,虽然也配了YouComplete,但是没有效果,也不知道为什么~,心力交瘁 不搞了,裸着吧~踩了个大坑,脑子抽了把vim自带的python3.5卸载了,就是手贱,明明有帖子说不要删不要删,我还是不信这个邪~ 欸~就没有我搞不砸的事下面记录一下吧,以后也用得到!!!踩坑注意:vim8.0gcc g++ 要支持c++17 我用的gcc-8,g++-8python要>=3.6clang>=8还有啥要注意的呢~plugin 和plu...

2021-03-19 21:05:15 344

转载 Linux ——ctags基本使用

Tag文件简介:tags文件(标签文件)是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用, 或者一个变量, 或者一个宏等等, 你想知道它们的定义在哪儿, 怎么办呢? 用grep? 那会搜出很多不相干的地方. 现在流行用是的"Ctrl+]", 谁用谁知道呀, 当光标在某个函数...

2021-03-16 17:11:00 1200

原创 pytest——05 报告

一、pytest 生成测试报告本文讲述pytest如何生成测试报告。首先准备一段测试代码:import py.testclass TestCase(object): def test_eq_set(self): assert set([0, 10, 11, 12]) == set([0, 20, 21]) def test_eq_dict(self): assert {'a': 0, 'b': 1, 'c': 0} == {'a': 0...

2021-03-15 16:49:30 1866

原创 Python——基础

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。Python对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'ABC'要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。...

2021-03-12 13:17:47 236

原创 python——函数

可更改(mutable)与不可更改(immutable)对象在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。可变类型:变量赋值 la=...

2021-03-12 13:17:24 56

原创 python——加解密hashlib/hmac/random/secrets/base64/pycrypto

一、数据加密概述1. 网络数据传输面临的威胁网络安全涉及很多方面,而网络数据的安全传输通常会面临以下几方面的威胁:数据窃听与机密性:即怎样保证数据不会因为被截获或窃听而暴露。 数据篡改与完整性:即怎样保证数据不会被恶意篡改。 身份冒充与身份验证:即怎样保证数据交互双方的身份没有被冒充。2. 相应的解决方案针对以上几个问题,可以用以下几种数据加密方式来解决(每种数据加密方式又有多种不同的算法实现):数据加密方式 描述 主要解决的问题 常用算法 对称加密 ...

2021-03-12 13:16:47 488

转载 网络通信整个流程

一 客户端\服务端架构(哪里用到了网络通信)客户端英文名称:Client,服务端英文名称:Server,下面所说的C\S架构就是说的Client\Server架构。    a.硬件C\S架构:打印机。    b.软件C\S架构:QQ、微信、优酷、暴风影音、浏览器(IE、火狐,360浏览器等)。其中浏览器又比较特殊,很多网站是基于浏览器来进行访问的,浏览器和各个网站服务端进行的通讯方式又常被成为B\S架构(浏览器英文名称:Browser)二 网络通信的整个流程上课笔记:集线器:将所有

2021-03-12 13:08:31 3007

转载 python——socket编程

一 客户端/服务器架构1.硬件C/S架构(打印机)2.软件C/S架构 C/S架构:客户端(client)/服务端(server)架构  互联网中处处是C/S架构  如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种)  腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) 软件CS架构:浏览器,qq,微信等 硬件CS架构:打印机3.B/S架构 浏览器(browser)/服务端(serv...

2021-03-12 13:06:31 1151 2

原创 socketserver源码分析(学习中)

一、简单看一下socketserver为什么要讲socketserver?我们之前写的tcp协议的socket是不是一次只能和一个客户端通信,如果用socketserver可以实现和多个客户端通信。它是在socket的基础上进行了一层封装,也就是说底层还是调用的socket,在py2.7里面叫做SocketServer也就是大写了两个S,在py3里面就小写了。后面我们要写的FTP作业,需要用它来实现并发,也就是同时可以和多个客户端进行通信,多个人可以同时进行上传下载等。  那么我们先看sockets

2021-03-11 13:38:49 237

原创 pytest——04 pytest.mark.xxx

使用 @pytest.mark.xxx 标记测试用例可以标记测试方法、测试类,标记名可以自定义,最好起有意义的名字;同一测试类/方法可同时拥有多个标记;# test_login_logout.py import pytest @pytest.mark.loginclass TestLogin: """登陆功能测试类""" @pytest.mark.smoke @pytest.mark.success def test_login_sucess(

2021-03-09 23:19:09 1097

转载 pytest——03 setup和teardown

目录前言用例运行级别函数式setup_function/teardown_functionsetup_module/teardown_module类和方法函数和类混合前言学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次。当然还有更高级一点的setupClass和teardownClass,需配合@classmethod装饰器一起使用,在做selenium自动化的时候,它的效率尤为突出,可以只启动.

2021-03-08 23:37:02 239

原创 pytest——02 调用/断言/fixture

目录使用python -m pytest调用pytest可能出现的执行退出code获取版本路径、命令行选项及环境变量相关帮助第1(N)次失败后停止测试指定及选择测试用例按节点id运行测试修改Python原生追溯(traceback)信息详尽的测试结果摘要断言的编写和报告使用assert语句进行断言异常断言pytest.raise()通过pytest.mark.xfail 标记用例失败自定义断言对比信息Pytest fixtures 使用F...

2021-03-08 23:08:45 931 1

原创 pytest——01 入门

安装及入门Python支持版本: Python 2.6,2.7,3.3,3.4,3.5,Jython,PyPy-2.3支持的平台: Unix/Posix and WindowsPyPI包名: pytest依赖项: py,colorama (Windows)创建你的第一个测试用例只需要4行代码即可创建一个简单的测试用例:# test_sample.py文件内容def func(x): return x + 1def test_answer(): assert

2021-03-08 15:32:47 75

转载 Git 的常规分支使用【dev和master】

Git 的常规分支使用【dev和master】牵涉命令git branch git checkout git merge创建分支并切换到新的分支 git branch xxx 创建一个新的分支 git branch 查看当前所在分支【* 表示当前】 git checkout xxx 从当前分支切换某个分支 在新的分支上面常规开发【一般是dev分支】在确保当前分支是上一步git checkout过来的即可【不放心的话可以git branch 确认下】git

2021-03-04 22:16:07 2003 1

原创 git——分支操作

目录分支简介分支创建分支切换分支的新建与合并新建分支分支的合并遇到冲突时的分支合并分支管理远程分支跟踪分支拉取删除远程分支变基变基的基本操作更有趣的变基例子变基的风险分支简介使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。当使用git commit进行提交操作时,Git 会先计算每一个子目录(本例中只有项目根目录)的校验和, 然后在 Git 仓库中这些校验和保存为树对象。随后,Git 便会创建一个提交...

2021-03-04 19:36:34 573 1

原创 git——04 远程仓库/标签/别名

远程仓库的使用为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。 在本节中,我们将介绍一部分远程管理的技能。 Note 远程仓库可以在你的本地主机上 你完全可以在一个“

2021-03-03 16:04:54 2329

原创 git——03撤销操作

撤消操作--amend重新提交在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有--amend选项的提交命令来重新提交:$ git commit --amend这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例...

2021-03-03 13:09:14 90

原创 git——02查看提交历史git log

查看提交历史在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的工具是git log命令。我们使用一个非常简单的 “simplegit” 项目作为示例。 运行下面的命令获取该项目:$ git clone https://github.com/schacon/simplegit-progit当你在此项目中运行git log命令时,可以看到下面的输出:$ git logcommit ca82a6dff817ec66f44342007...

2021-03-03 12:28:33 156

原创 git——01拉取和代码更新

获取 Git 仓库通常有两种获取 Git 项目仓库的方式: 将尚未进行版本控制的本地目录转换为 Git 仓库; 从其它服务器克隆一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。在已存在目录中初始化仓库如果你有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,那么首先需要进入该项目目录中。 如果你还没这样做过,那么不同系统上的做法有些不同:在 Linux 上:$ cd /home/user/my_proje..

2021-03-03 11:57:36 741

转载 网络基础之网络协议篇

一.操作系统基础  操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。  注:计算机(硬件)->os->应用软件  有关操作系统详细的介绍和原理请看这里>>>https://www.cnblogs.com/clschao/articles/9613464.html,不是你们现在这个阶段需要学习的,还是老样子,先大致了解一下就行啦

2021-03-01 14:32:02 1019

原创 git——介绍

三种状态现在请注意,如果你希望后面的学习更顺利,请记住下面这些关于 Git 的概念。 Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。 已提交表示数据已经安全地保存在本地数据库中。 这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。工作区...

2021-03-01 10:54:55 93

转载 Python——2与3的一些注意要点

目录1.Linux脚本的申明2.字符串和2进制3.请求输入(标准输入)的区别4.字符集的区别5.提示输入5.类的区别查找方式6.socket区别1.Linux脚本的申明如果使用该申明:#!/usr/bin/ python代表是系统自带的python.2.7来解释你的脚本。如果你安装一个高版本 是在usr/local/python3.5目录下,由于一般情况下不可以替换系统自带的Python怕发生其他问题。所以我们写脚本的时候用该申明:#!/usr/bin/envp..

2020-12-28 18:38:41 527

原创 python——sys模块

sys.argv功能:在外部向程序内部传递参数示例:sys.pyimport sysprint sys.argv[0]print sys.argv[1]运行:>>>python sys.py argv1sys.pyargv1sys.exit(n)功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为

2020-12-28 18:21:08 519

原创 python——内置方法补充、异常处理

一、new方法__init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法__new__()必须要有返回值,返回实例化出来的实例def __new__(cls, *args, **kwargs):例子# -*- coding: utf-8 -*-class Foo(object): def __init__(self,name): self.n

2020-12-03 21:56:09 257 1

原创 python——类的装饰器/元类

一、类的装饰器装饰器并不是在调用该函数/对象的时候调用的,而是在代码编译的过程中已经返回函数/对象,当改函数/对象被调用的时候,调用的是已经返回的函数/对象类作为一个对象,也可以被装饰。def wrap(obj): print("装饰器-----") obj.x = 1 obj.y = 3 obj.z = 5 return obj​@wrap #将Foo类作为一个参数传入装饰器函数wrap,返回同时返回该对象,把新对象重新命名为Foo#即 Foo

2020-12-02 12:24:51 315

转载 python——反射/内置方法/描述符/二次包装

一 反射在python中,可以通过字符串的的形式来操作对象的属性。这种行为称之为python中的反射它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。下面是反射的四个基本方法:getattr 获取指定字符串名称的对象属性 该函数返回的是属性的值或者方法的内存地址 setattr 为对象设置一个对象 setattr(x,y,v) 注意第二个参数是字符串,第三个参数是要设置的属性的的值或者方法的形式 hasattr 判断对象是否有对应的对象...

2020-11-18 14:04:41 154

转载 python——面向对象和类

一、面向对象的概念1. "面向对象(OOP)"是什么?简单点说,“面向对象”是一种编程范式,而编程范式是按照不同的编程特点总结出来的编程方式。俗话说,条条大路通罗马,也就说我们使用不同的方法都可以达到最终的目的,但是有些办法比较快速、安全且效果好,有些方法则效率低下且效果不尽人意。同样,编程也是为了解决问题,而解决问题可以有多种不同的视角和思路,前人把其中一些普遍适用且行之有效的编程模式归结为“范式”。常见的编程范式有:面向过程编程:OPP(Procedure Oriented Programi

2020-11-17 17:00:24 565

空空如也

空空如也

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

TA关注的人

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