自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【测试】Selenium

Selenium原理:客户端向服务器端发送特定格式的请求,服务器端接受请求打开浏览器,WebDrvice通过浏览器原生组件转化Web Service的命令转化为浏览器native的调用来完成操作。录制实例...

2019-09-07 19:48:43 307

原创 【测试】自动化工具基础

什么是自动化自动化测试指软件测试自动化,在正常或异常状态下运行应用程序或者系统,最后评估运行结果。将人为驱动的测试转化为机器执行的过程。常见的自动化测试工具QTP(功能自动化工具,可以测cs/bs收费),selenium(功能自动化测试工具,web自动化测试工具BS)、Rational Robot(功能自动化工具cs/bs收费)、jmeter(性能自动化测试工具bs)、appium(app功...

2019-09-05 16:22:49 364

原创 【Linux】阻塞信号及其相关函数详解

信号的其他概念信号递达:实际执行信号的处理动作。信号未决:信号从产生到递达之间的状态。进程可以选择阻塞某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可以选择的处理动作。在内核中的表示图示:每个信号都有两个标志位分别表示阻塞(block)和未决(pending),还有函...

2019-09-04 13:24:22 635

原创 【Linux】信号

信号信号是进程之间事件异步通知的一种方式,属于软中断。查看信号列表kill -l每个信号都有一个编号和一个宏定义名称这些宏定义在signal.h中找到。编号34以上的是实时信号。例:ctrl-c用户输入命令,在shell下启动一个前台进程。用户按Ctrl-c,输入产生一个硬件中断,被OS获取,解释成信号,发送给目标前台程序。前台收到信号,引起程序退出。ctrl-c产生的信号只...

2019-09-02 22:34:10 148

原创 【MySQL】表的操作

创建表CREATE TABLE table_name(field1 datatype;field2 datatype;field3 datatype;)character set 字符集 collate 校验规则 engine 存储引擎;field标识列名;datatype:表示列的类型;character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;coll...

2019-08-31 22:40:00 160

原创 【Linux】System V共享内存实现(代码)

代码分为五部分,分别为comm.h、comm.c、makefile、server.c、client.ccomm.h部分代码 #ifndef COMM_H #define COMM_H #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include &lt...

2019-08-30 22:42:28 238

原创 【项目】畅聊

项目名称畅聊项目源码https://github.com/Mmmmmrr/Project.git项目使用技术C++STL、http协议、websocket协议、session与cookie、mysql、登录注册、mongoose框架、jsoncpp。项目简介使用websocket框架mongoose、http、mongoose、session、mysql、jsoncpp的技术编写的即...

2019-08-29 19:21:36 443

原创 【Linux】system V共享内存函数

共享内存区是最快的IPC形式。一旦这样的内存映射到共享他的进程的地址空间,这些进程间数据传递不再涉及到内核。示意图:原理:在物理内存开辟空间,映射。共享内存函数shmgetint shmget(key_t key,size_t size,int shmflg);功能:创建共享内存。key:共享内存断名字。size:共享内存大小。shmflg:由九个权限标志构成,他们的用法和创建...

2019-08-28 23:18:38 252

原创 【Linux】命名管道实现server/client通信(代码)

serverPipe.c实现: #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> ...

2019-08-27 23:44:44 378

原创 【Linux】进程间通信-------管道

进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程给另一个进程或一组进程发送消息,通知他或他们发生了某种事件。进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有陷入和异常,能够及时知道他的状态改变。进程间通信及其分类管道(只能进行单向通信):匿名管道pipe、命名管道;...

2019-08-26 23:57:31 160

原创 【测试】测试手段

在越来越多公司使用敏捷的开发模式,轻文档甚至无文档,需求不明确,测试时间越来越短。测试难度增大这就需要更多的测试手段。code review为什么执行review?代码评审可以及时发现一些容易发现的bug,不必将发现bug的时间延迟到测试阶段。代码评审可以保证至少两人都理解任何一份代码;代码评审在之后会让多人看自己的代码,保证代码的正确性提高。代码评估的流程提交前评审程序员在将代...

2019-08-25 21:41:53 262 1

原创 【MySql】库的操作

库的创建CREATE DATEBASE [IF NOT EXISTS] db_name [create_specification, [create_specification] …]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name大写的表示关键字;[]...

2019-08-23 23:13:02 225

原创 【C++】关联式容器set

set

2019-08-22 22:22:27 139

原创 【C++】关联式容器multimap

multimap是关联式容器,它按照特定的顺序存储由key和value映射成的键值对<key,value>,其中多个键值之间的key可以重复。总结:multimap的key可以重复;multimap中的元素默认将key按照小于来比较;multimap没有重载operator[];multimap的头文件与map相同。插入相同key值可重复#include <st...

2019-08-21 21:38:41 287

原创 【测试】测试方法的划分

按开发阶段划分单元测试单元测试是对软件组成的单元测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单位:模块。又称为模块测试。测试阶段:编码后或编码前。测试对象:最小模块。测试人员:白盒测试工程师和开发工程师。测试依据:代码和注释及详细设计文档。测试方法:白盒测试。测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。集成测试集成测试...

2019-08-20 23:22:10 777

原创 【测试】测试用例

测试用例的基础要素测试用例是为了实施测试而向被测试的系统提供一个集合,集合包含测试环境、操作步骤、测试数据、预测结果等要素。好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。评价测试用例的标准用例表达清楚,无二义性;用力可操作性强;用例的输入与输出明确,一条用例只有一个预期结果;用例的可维护性强;用户对需求的覆盖率高;暴露程序BUG的能力强力。测试用例的设计方法...

2019-08-19 22:11:52 326

原创 【项目】AI机器人

项目名称AI机器人项目源码https://github.com/Mmmmmrr/Project.git项目使用技术C++STL、http第三方库、图灵机器人、百度语言、百度语音合成等。项目简介利用图灵机器人进行语音对话和百度语音识别、语音合成工具进行聊天的工具。项目准备注册图灵机器人使用postman测试通过post访问网址http://openapi.tuling12...

2019-08-18 22:12:38 715

原创 【C++】关联式容器map

关联式容器关联式容器也是存储数据的,与序列式容器不同,其中存储的是<key,value>结构的键值对,在数据检索时比序列式容器效率更高。键值对用来表示具有一一对应关系的一种结构,该结构一般只包含两个成员变量key与value,key代表键值,value表示对应的信息。template<class T1,class T2>struct pair{ typedef...

2019-08-17 22:44:12 143

原创 【C++】C++的类型转换

C语言中的类型转换隐式类型显示类型int main(){ int i = 3; //隐式类型转换 double d = i; printf("%d,%.2f\n", i, d); int* p = &i; //显示的强制类型转换 int add = (int)p; printf("%x,%d\n", p, add); system("pause"); re...

2019-08-15 21:17:50 156

原创 【C++】智能指针

为什么需要智能指针

2019-08-14 19:58:04 139

原创 【C++】模拟实现智能指针(auto_ptr、unique_ptr、shared_ptr)

模拟实现auto_ptrtemplate<class T>class AutoPtr{public: AutoPtr(T* ptr = nullptr) :_ptr(ptr) {} ~AutoPtr() { if (_ptr) delete _ptr; } AutoPtr(AutoPtr<T>& ap) :_ptr(ap._pt...

2019-08-13 22:19:34 176

原创 【C++】C++异常总结

使用C++异常出来错误的原因C语言处理错误的方式有终止进程(assert),返回错误码,C标准库中setjmp和longjmp组合,但都有各自的缺陷:assert发生内存错误,除0错误时就会终止程序,错误码需要程序员查询对应的错误,总之,C语言中基本都是返回错误码的方式,部分采用错误码的方式。C++中...

2019-08-12 22:12:18 184

原创 【MySQL】数据库基础

什么是数据库更加利于保存管理数据。文件保存存在安全性问题,不利于数据查询和管理,不利于存储海量数据,在程序中控制不方便。数据库存储介质为磁盘与内存。主流数据库SQL ServeOracleMySQLPostgreSQLSQLiteH2服务器管理执行 win+r 输入services.msc打开服务管理器。左侧有停止、暂停、重启动服务器。服务器、数据库、表关系服务器是在...

2019-08-10 23:42:59 145

原创 【测试】开发模型与测试模型

软件的生命周期从软件产品设想开始到软件不再使用而结束的时间,软件生命周期分为六个阶段,分别为:需求分析,计划、设计、编码、测试、运行维护。瀑布模型瀑布模型在软件工程中占主要地位,是所有其他模型的基本框架,瀑布模型的每一个阶段都只执行一次,是线性顺序进行的软件开发模式。优点:强调开发的阶段性,强调早期计划及需求调查,强调产品测试;缺点:需求分析只有一次,不适应需求变化,线性的开发模式,开...

2019-08-09 23:49:59 246

原创 【C++】浅谈单、多以及菱形继承

单继承、多继承单继承:一个子类只有一个直接父类时称这个继承关系为单继承。多继承:一个子类有两个或以上直接父亲时称为多继承。菱形继承菱形继承存在的问题:有数据冗余与二义性的问题。class Person{ public: string _name;};class Student : public Person{ protected: int _age;};cla...

2019-08-08 11:48:37 163

原创 【测试】软件测试基础

什么是软件测试软件测试最基本的活动就是找bug,说明的测试的目的以及如何衡量测试是否成功。软件测试的发展软件调试独立的软件测试软件测试的第一次定义软件称为专门的学科开发与测试的融合测试与调试的区别目的不同(测试找到程序的缺陷,调试是定位并解决程序的问题)参与角色不同(测试是测试与开发人员完成,黑盒测试主要由测试人员,单元和集成测试由开发人员,调试由开发人员)执行阶段不同...

2019-08-08 00:35:13 162

原创 【C++】多态

多态去完成某个行为时,不同的对象会产生出不同的状态。多态的定义多态是不同继承关系的类对象,去调用同一函数,产生不同的行为。构成多态的条件:调用函数的对象必须是指针或者引用;被调用的函数必须是虚函数,且完成了虚函数的重写。虚函数在类的成员函数前面加virtual关键字。class Person{ public: virtual void test() { co...

2019-08-06 23:23:01 114

原创 【C++】继承

概念面向对象程序设计使代码复用的一种手段,是一种类设计层次的复用。派生类保持在原有类特性的基础上进行扩展,增加功能。格式class + 派生类 : 继承方式+基类--------> class Teacher : public Person继承方式包括:public继承、provate继承、protexted继承。class Person{public:void Pr...

2019-08-05 22:46:26 149

原创 【Linux】文件相关操作(文件IO、文件描述符、inode)

Linux下一切皆文件。C语言编写的程序,默认会打开3个输入输出流,分别是stdin、stdout、stderr;stdin:标准输入,对应设备键盘;stdout:标准输出,对应设备显示器;stderr:标准错误对应设备显示器;write.c给log文件写入10行helloword;使用printf、fprint、fputs在屏幕上输出。 #include <std...

2019-08-03 11:59:15 180

原创 【Linux】简单的shell模拟实现(代码)

支持简单的ls、-a、-l、top等命令,|(管道)、>(重定向)等不支持shell.c代码1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 #include <cstring> 5 #include <unistd.h> 6 #i...

2019-08-02 20:33:54 783

原创 【Linux】进程程序替换

替换原理为什么要程序替换创建的子进程做不同的事,执行一个全新的程序。原理没有创建子进程,调用exec函数,进程覆盖源程序的数据与代码,执行新的代码。将一个程序加载到内存,程序执行起来-------->加载替换替换函数(…可变参数列表)int execl(const char* path,const char *arg,…);int execlp(const char *f...

2019-08-02 19:13:35 204

原创 【Linux】进程的阻塞与非阻塞(代码实现)

阻塞的等待方式: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <error.h> 4 #include <sys/types.h> 5 #include <sys/wait.h> 6 int main() 7 { 8 pid_t id...

2019-08-01 20:05:06 1938

原创 【C++】深入了解模板

模板参数分类类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参:用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。template<class T,size_t N= 10>class Array{ public: T& operator[](size_t index) {...

2019-07-31 19:42:08 145

原创 【Linux】进程创建(fork函数)及其等待与退出

进程创建进程是把该程序运行起来加载到内存,受OS控制,建立PCB,OS把PCB管理好就是把进程管理好。以fork为例:fork函数在Linux中fork函数是非常重要的函数,会创建子进程,原进程是父进程。子进程返回0,父进程返回子进程id。进程调用fork,当控制转移到内核中的fork代码后,内核做以下动作:分配新的内存块和内核数据给子进程;将父进程部分数据结构内容拷贝至子进程;...

2019-07-30 23:48:28 2545

原创 【Linux】进程地址空间

验证:#include <stdio.h>#include <unistd.h>#include <stdlib.h>int g_val = 0;int main(){ pid_t id = fork(); if(id < 0) { perror("fork"); return 0; } else if(id == 0) ...

2019-07-29 22:56:03 139

原创 【C++】stl_string(接口实现)

接口实现:#pragma once#include <iostream>#include <string>#include <assert.h>using namespace std;namespace mr{ class String { public: typedef char* iterator; iterator begin(...

2019-07-27 22:53:59 178

原创 【Linux】环境变量

环境变量环境变量一般指在操作系统中用来指定操作系统运行环境的一些参数。环境变量通常具有某些具体用途,还在系统中通常具有全局性。常见的环境变量PATH:指定命令的搜索路径HOME:指定用户的主工作目录(\home\xx)SHELL:当前shell,他的值通常是/bin/bash查看环境变量方法echo $环境变量名称和环境变量相关的命令echo:显示某个环境变量expo...

2019-07-26 21:10:06 163

原创 【C++】模板

实现一个通用的交换函数void Swap(int& x,int& y);void Swap1(double& x,double& y);void Swap2(char& x,chaar& y);可以使用函数重载实现,但有其自己的缺点:代码复用率较低,有新类型的函数,就要增加其相对应的函数。代码的可维护性比较低,一个出错可能其他重载的函...

2019-07-25 21:11:00 777

原创 【Linux】进程

前提:认识冯诺依曼体系结构输入后输出数据时,一定要写入内存或者从内存中读取,在不考虑缓存的情况下,这里CPU能且只能对内存进行读写,不能访问外设。过度:操作系统操作系统是一款软硬件资源管理的软件;管理者是根据数据进行相关决策的;一般而言,管理者与被管理者并不直接沟通,OS与硬件之间存在设备驱动。总结:要管理好一个软硬件要先将其描述起来,再组织起来。进程操作系统管理进程要先把进程管理...

2019-07-24 22:28:33 111

原创 【Linux】Linux项目自动化构建工具

make/Makefile一个工程中的源文件较多,编程时较复杂,makefile定义了一系列规则来指定,那些文件需要先编译,哪些需要后编译,以及其他操作。makefile是自动化编译,写好后使用make命令,整个工程自动编译,增大了开发的效率。make是一个命令,是解释makefile中指令的命令工具。makefile是一个文件,其中包含一个依赖关系,一个依赖方法。原理make会在当...

2019-07-23 23:12:18 186

空空如也

空空如也

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

TA关注的人

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