zoukankan      html  css  js  c++  java
  • 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 ,如需转载请自行联系原作者





  • 相关阅读:
    问题记录之spring-mvc.xml配置文件报错
    问题记录之用poi生成图片并插入到word时,图片中的中文显示不出来
    问题记录之每次打开vmware的时候都会跳出xftp的安装程序问题解决
    DataTable和List之间互转
    .NET[C#]中实现实体对象深拷贝(克隆/复制)的几种方法
    SQL Server表分区详解(转)
    vs2017使用GitHub插件发布项目到github
    jquery autocomplete 在IE11中出现打开网页输入框有默认值时下拉列表是已经打开的状态解决
    MVC DropDownLis 二级联动实现
    sql 查询某个表在哪些存储过程(SP)中使用到
  • 原文地址:https://www.cnblogs.com/twodog/p/12138935.html
Copyright © 2011-2022 走看看