软件测试相信大家应该都不陌生了吧,今天我们就一起来了解一下,在python编程开发环境下的软件测试都有哪些知识点。
格式化输出我们有两种大相径庭地输出值方法:表达式语句*和print()函数(三种方法使用文件对象的write()方法,标准文件输出可以参考sys.stdout)。
通常需要对输出做更多的格式控制,而不是简单的打印空格分隔值。
有两种方法可以格式化你的输出:一种方法是由你自己处理整个字符串,通过使用字符串切片和连接操作可以创建任何你想要的输出形式。
string类型包含一些将字符串填充到指定列宽度的有用操作。
二种方法是使用str.format()方法。
标准模块string的Template类可以替换字符串的值。
(python标准模块介绍-string:文本常量和模板)Python有办法将任意值转为字符串:repr()或str()函数。
函数str()用于将值转化为适于人阅读的形式,而repr()转化为供解释器读取的形式(如果没有相关语法,则会发生SyntaxError异常,没有str()会返回与repr()等同的值。
很多类型,诸如数值或列表、字典这样的结构,两者解读方式相同。
字符串和浮点数则不同。
文件读写通常,文件以text模式打开,这意味着,你从文件读出和向文件写入的字符串会被特定的编码方式(类Linux默认是UTF-8,windows经常为gbk,容易导致一些IO问题)编码。
模式后面的'b'以二进制模式打开文件:数据会以字节对象的形式读出和写入。
IT培训http://www.kmbdqn.cn/发现这种模式应该用于所有不包含文本的文件。
在文本模式下,读取时默认会将平台有关的行结束符(Unix上是\n,Windows上是\r\n)转换为\n。
在文本模式下写入时,默认会将出现的\n转换成平台有关的行结束符。
这种暗地里的修改对ASCII文本文件没有问题,但会损坏JPEG或EXE这样的二进制文件中的数据。
使用二进制模式读写此类文件时要特别小心。
对于各种驱动接口,Python来编写测试用例的好处是:由于Python不需要编译,你所执行的也就是你所编写的,当发生异常的时候,你无须打开集成开发环境,加载测试工程、并调试,你能够很方便的看到python测试脚本的内容,什么地方出了异常可以立刻发现,例如:from ctypes import *
rc =c_int(-12345)
dll = windll.LoadLibrary("dmodbc.dll")#加载被测试组件
#=================#
SQLHANDLE_env = pointer(c_long(0))
SQLHANDLE_cnn = pointer(c_long(0))
SQLHANDLE_stmt = pointer(c_long(0))
pdns = c_char_p("FASTDB")
puid = c_char_p("SYSDBA")
ppwd = c_char_p("SYSDBA")
#env handle
rc = dll.SQLAllocHandle(1,None,byref(SQLHANDLE_env))
print "result of henv handle alloc :%d" %rc
#cnn handle
rc = dll.SQLAllocHandle(2,SQLHANDLE_env,byref(SQLHANDLE_cnn))
print "result of cnn handle alloc :%d" %rc
#connect!
rc = dll.SQLConnect(SQLHANDLE_cnn,pdns,-3,puid,-3,ppwd,-3)
print "result of connect :%d" %rc
#stmt handle
rc = dll.SQLAllocHandle(3,SQLHANDLE_cnn,byref(SQLHANDLE_stmt))
print "result of stmt handle alloc:%d" %rc
#exec
rc = dll.SQLExecDirect(SQLHANDLE_stmt,"insert into t values(1)",-3)
print "result of exec:%d" %rc
#free========================
rc = dll.SQLFreeHandle(3, SQLHANDLE_stmt)
print rc
rc = dll.SQLDisconnect(SQLHANDLE_cnn)
print rc
rc = dll.SQLFreeHandle(2, SQLHANDLE_cnn)
print rc
rc = dll.SQLFreeHandle(1, SQLHANDLE_env)
print rc
在上面我们可以看到,Python调用c/c++接口是十分容易的,只需要把动态库加载进来,然后把这个动态库当作一个对象实例来使用就可以了。下面将是一个使用ado.net接口的例子:
import System
from Dm import *#Dm是DMDBMS提供的ado.Net的DataProvider
#print dir(Dm.DmCommand)
i =0
cnn = Dm.DmConnection("server = 127.0.0.1User ID = SYSDBAPWD = SYSDBADatabase = SYSTEMport = 12345")
cmd = Dm.DmCommand()
cmd.Connection = cnn
cmd.CommandText = "insert into t values(1)"
cnn.Open()
i=cmd.ExecuteNonQuery()
print i
cmd.Dispose()
cnn.Close()
可以看到,.net对象的使用与在VisualStdio上进行开发几乎没有任何区别。
通过使用Python进行测试用例的开发,最大的好处莫过于:学习成本非常低,测试工程师只需要学习Python,对于其他语言稍有了解就可以了。同时只需要少量的测试开发工程师对Python测试框架进行维护。
这样的好处就是便于测试人员将精力专精在一个方向,免于“什么都会一点,但什么都不精”的情况。当然测试人员具备广阔的知识面,会使用各种常见的开发工具与平台是好事情,并且也是必要的,不过在短时间内要求迅速能够胜任大多数任务也是企业在人才培养上的期望目标。
软件测试人员能用python做的事情很多,最常见的就是下面四项:1)做自动化测试【web自动化,app自动化,接口自动化】;2)做性能测试;3)开发小工具;4)搭建测试平台。软件测试工程师是被遗忘的技术人。主要是因为软件测试入门门槛比较低,一大批人加入到软件测试行业大军中。但大部分都是一直在做点点点的功能测试,可替代性很强。行业高速发展,单纯功能测试已无法满足企业需求。如果你想增强自身竞争力,就需要有丰富的自动化项目经验,可以根据公司项目灵活的打造一套自动化测试框架。这,都需要从熟练掌握Python编程开始。其实,不管你从事的是什么工作,数据都会是其中的一部分。IT,软件开发,市场等,它们都深度地关乎数据且对于智慧求之若渴。很快数据分析技能就会像编码技能一样的重要,掌握Python编程对你的工作有着极大的提升。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,是一家性价比极高的教育机构