遇到大型python项目,如何定位问题和监控程序的运行状态是一个程序员必须掌握的技能,今天小编为你带来python程序的单步调试方法,方便易用,简单易记!
首先你需要在所调试程序的开头中:import pdb 并在你的代码行设置断点:pdb.set_trace()
def get_input(Data, SuiteID, CaseID, caseinfolist): global sArge sArge='' args = [] #对于get请求,将参数组合 if reqmethod.upper()=='GET': for j in range(0, caseinfolist[1]): if Data.read_data(SuiteID, Data.casebegin+CaseID, Data.argbegin+j) != "None": ArgValue = Data.read_data(SuiteID, Data.casebegin+CaseID, Data.argbegin+j) if '$$' in ArgValue:#走关联分支 args = ArgValue.split('$$') #print args corvalue = Correl(args[0], args[1], args[2]) pdb.set_trace() #######这儿设置断点,程序运行到此处就开始了单步调试########### if corvalue == []: sArge = 'correlerr' #return sArge #infolog="关联失败" #ret1 = 'NG' #Data.write_data(SuiteID, Data.casebegin+CaseID, 15,infolog,NG_COLOR) #write_result(Date, SuiteID, Data.casebegin+CaseID, 16, ret1) else: sArge=sArge+caseinfolist[2][j]+'='+corvalue[0]+'&' else: sArge=sArge+caseinfolist[2][j]+'='+ArgValue+'&' #print sArge #去掉结尾的&字符 if sArge[-1:]=='&': sArge = sArge[0:-1] #sInput=caseinfolist[0]+sArge #为了post和get分开方便,不在这里组合接口名,在调用的地方组合接口名。 return sArge #对于post请求,因为不知道连接格式是=还是冒号,或者是其他的格式,所以不做拼接。直接取参数的第一个作为上传body。 else: sArge=Data.read_data(SuiteID, Data.casebegin+CaseID, 3) if '$$' in sArge:#走关联分支 args = sArge.split('$$') #print args corvalue = Correl(args[0], args[1], args[2]) if corvalue == []: sArge = 'correlerr' return sArge else: return sArge
程序开始之后pdb调试界面:
> c:userswangchaoworkspaceinterface_test estframe.py(253-> reqmethod.upper()==
总结:上面的程序是本人私有,因而不能全部上传,在练习pdb时,建议使用自己的程序,pdb单步调试方法总结如下:
命令
解释 |
|
break 或 b 设置断点 |
设置断点 |
continue 或 c |
继续执行程序 |
list 或 l |
查看当前行的代码段 |
step 或 s |
进入函数 |
return 或 r |
执行代码直到从当前函数返回 |
exit 或 q |
中止并退出 |
next 或 n |
执行下一行 |
pp |
打印变量的值 |
a |
查看全部栈内变量 |
本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1948479 ,如需转载请自行联系原作者