软件测试学习教程——JDBC介绍
DBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 JDBC是编程接口,开发工程师使用JDBC进行编程,而不用了解每种数据库底层的协议。这使得对于每一种数据库,可以使用相同的API去对数据库
软件测试学习教程——JDBC开发
MYSQL ORACLE 要求jdk至少1.6以上 SQL Server 每一种数据库有不同的版本,也有数据库对JDK版本有要求,具体驱动版本的选择,可以参考数据库官方文档说明。 # 2.String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=t
软件测试学习教程——JDBC配置
JDBC配置 JMeter通过commonsdbcp2创建数据库连接池,维护对某个数据源的连接。每个线程执行JDBC请求的时候会获得连接,执行完毕后释放连接到连接池中。 性能测试测试:若配置的连接池数量过多会导致数据库连接资源紧张,多个线程竞争资源,应适度增加连接数。如果是分布式测试过程中,应衡量总连接数是否过多超过数据库的最大连接数,导致数据库资源紧张。&nbs
物联网学习教程——线程同步与互斥:读写锁
线程同步与互斥:读写锁读写锁基本原理:当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问题。在对数据的读写操作中,更多的是读操作,写操作较少,例如对数据
物联网学习教程—— 线程私有数据
线程私有数据在多线程程序中,经常要用全局变量来实现多个函数间的数据共享。由于数据空间是共享的,因此全局变量也为所有线程共有。测试代码如下:#include <stdio.h> #include <pthread.h> #include <unistd.h> #incl
作为一名软件测试工程师,需要具备哪些能力?
作为一名软件测试工程师,需要具备哪些能力?很多同学在准备进入软件测试行业的话都会问到这个问题!相信大家的回答也是各式各样的,每个人的想法或者说建议都是不一样的,下面我来说说我的想法吧! 我认为一名合格且优秀的软件测试工程师要具备责任、技术、业务、沟通、思维、沟通五部分的能力,咱们一个一个来说: 责任:做为测试人员,我们本着对产品负责的态度首先必须具备的就是负责、严谨
线程同步与互斥:互斥锁
为什么需要互斥锁? 在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此刻使用打印机打印东西,如果不做任何处理的话,打印出来的东西肯定是错乱的。 下面我们用程序模拟一下这个过程,线程一需要打印“ hello ”,线程二需要打印“ world ”,不加任何处理的话,打印出来的
jmeter配置、安装
一、 工具描述apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计jmeter的初衷是测试web应用,后来又扩充了其它的功能。jmeter可以完成针对静态资源和动态资源(servlets, perl脚本, java对象, 数据查询s, ftp服务等)的性能测试。jmeter可以模拟大量的服务器负载、网络负载、
多任务同步与互斥概念
现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:都需要访问/使用同一种资源多个任务之间有依赖关系,某个任务的运行依赖于另一个任务 这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。 接下来,来看一下同步与互斥的基本概念:互斥:是指散步在不同任务之间的若干程序片
物联网学习教程——线程池
线程池线程池基本原理在传统服务器结构中,常是有一个总的监听线程监听有没有新的用户连接服务器,每当有一个新的用户进入,服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户,当用户与服务器端关闭连接以后,服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源,而且在大量用户的情况下,系统为了开辟和销毁线程将浪费大量的时间和资源。线程池提供了一个解决外部大量用户与服
软件测试学习教程——如何写出高质量的缺陷报告
1.为什么要写缺陷报告当我们发现Bug后,需要通知开发人员,缺陷报告是一种沟通的介质,它的主要目的是让开发人员能够亲眼看到这个Bug是什么,如果不提供足够详细的说明来帮助开发人员重现Bug,那么他们就没法确定问题的根源。缺陷报告是一种用来说明期望结果和实际结果之间的差异以及描述bug如何重现的文档。发现Bug,最好是一发现并确认了bug就立即填写缺陷报告,而不要等到当天测试结束再和其他bug一起填
软件测试学习教程——CentOS 7 修改网卡设置
在安装CentOS的时候,我们经常选择最小范围安装,以减少系统占用空间和提高运行的速度,但是这样安装并启动系统后,其网络设置往往默认是关闭连接的状态,需要手工进行配置和修改。下面我们一起来看看如何手工修改网卡配置。 &
软件测试学习教程—— 简谈list相关的生成器表达式
首先看看一个列表的类型,我们通过isinstance() 函数来判断一个列表的类型,通过实验1可以看出其只是一个可迭代的对象,而不是一个迭代器。可以通过iter() 函数返回一个其对应的迭代器。 “生成器表达式(简称生成式)”实际上可以理解为“迭代”和“列表解析”的组合,它使用小括号来表示。在实验2中,该生成式既是一个迭代器,又是一个可迭代对象。但是这个时候生成式是不能直接以
软件测试学习教程——【大蟒蛇】python基础
一,print()函数 print作用:把“ ”内部的内容,输出到屏幕。print(“hello world”)print(“hello python”) 二,注释• 注释的作用:• 使用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性。• 单行注释(行注释)• 以#开头,#右边的所有东西都被当作说明文字,而
软件测试学习教程——Python SMTP发送邮件
Python SMTP发送邮件SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。Python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。Python创建 SMTP 对象语法如下:import smtplibsmtpObj = smtplib.SM
进程和线程的区别与联系
在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么, 只是维护应用程序所需的各种资源,而线程则是真正的执行实体。为了让进程完成一定的工作,进程必须至少包含一个线程。 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源,所以我们也说,进
Linux系统编程之进程间通信方式:共享内存实例演示
实战示例接下来我们做这么一个例子:创建两个进程,在 A 进程中创建一个共享内存,并向其写入数据,通过 B 进程从共享内存中读取数据。写端代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>
多线程实现多任务二
线程的常用函数4)回收线程资源所需头文件:#include <pthread.h>int pthread_join(pthread_t thread, void **retval); 功能:等待线程结束(此函数会阻塞),并回收线程资源,类似进程的 wait() 函数。如果线程已经结束,那么该函数会立即返回。参数:thread:被等待的线程号。retval:用来存储线
如何让自己成为物联网行业的精英?
有的朋友问过小编一个问题,那就是如何让自己成为物联网行业的精英?很正常,对于一个零基础的小白,大家肯定是对未来充满了希望的!下面就来说说我的看法吧!不喜勿喷!成为物联网行业精英是一个循序渐进的过程,首先要清楚成长路线。1、建议大家可以先学习C语言,在物联网开发中C语言用的是最多的一门编程语言,再者C语言相对比较容易入门。2、其次建议大家学习Linux操作系统下的编程,即Linux系统编程,使用Li
多线程实现多任务一
概述每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。为了减少系统开销,从进程中演化出了线程。为了让进程完成一定的工作,进程必须至少包含一个线程。线程存在于进程中,共享进程的资源。就像每个进程都有一个进程号一样,每个线程也有一个线程号。进程号在整个系统中是唯一的,但线程号不同,线程号只在它所属的进程环境中有效。进程号用 pid_t 数据类型表