Python如何实现单步调试

遇到大型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 ,如需转载请自行联系原作者





原文地址:https://www.cnblogs.com/twodog/p/12138936.html