基于Python测试程序是否有错误


Posted in Python onMay 16, 2020

1、首先介绍简单的try......except尝试运行的放例如下面的图和代码来简单介绍下:

def test(x,y):
  print(x+y)
try:
  test()
except:
  print('Error')
test(2,4)

test测试的函数,没传参数的x,y,函数结果是要答应x加y的和

try:试着执行test()函数,正常就执行函数并打印x加y的和

except:否则 打印'Error' 因为我这test没有给x,y定义传参数,所以会走到except

结果:

基于Python测试程序是否有错误

2、我们以上次排球比赛程序为例子做测试:

from random import random
def printIntro():     #打印程序介绍信息
  print("10号张颖慧进行比赛分析结果:")
  print("这个程序模拟两个选手A和B的某种竞技比赛")
  print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
def getInputs():      #获得程序运行参数
  a = eval(input("请输入选手A的能力值(0-1): "))
  b = eval(input("请输入选手B的能力值(0-1): "))
  n = eval(input("模拟比赛的场次: "))
  return a, b, n
def simNGames(n, probA, probB):  # 进行N场比赛
  winsA, winsB = 0, 0
  for i in range(n):
    for j in range(7):      #进行7局4胜的比赛
      scoreA, scoreB = simOneGame(probA, probB)
      if scoreA > scoreB:
        winsA += 1
      else:
        winsB += 1
  return winsA, winsB
try:
  simNGames(0.55)
except:
  print("simNGames Error")
  
def gameOver(a,b):        #正常比赛结束
  return a==24 or b==24
def gameOver2(a,b):       #进行抢12比赛结束
  if abs((a-b))>=2:
    return a,b
def simOneGame(probA, probB):     #进行一场比赛
  scoreA, scoreB = 0, 0      #初始化AB的得分
  serving = "A"        
  while not gameOver(scoreA, scoreB):   #用while循环来执行比赛
    if scoreA==10 and scoreB==10:
      return(simtwoGame2(probA,probB))
    if serving == "A":
      if random() < probA:      ##用随机数生成胜负
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simOneGame(0.54)
except:
  print("simNGame Error")
  
def simtwoGame2(probA,probB):
  scoreA,scoreB=23,23
  serving = "A"
  while not gameOver2(scoreA, scoreB):
    if serving == "A":
      if random() < probA:
        scoreA += 1
      else:
        serving="B"
    else:
      if random() < probB:
        scoreB += 1
      else:
        serving="A"
  return scoreA, scoreB
try:
  simtwoGame2(0.44,0.66)
except:
  print("simNGame2 Error")
  
def printSummary(winsA, winsB):
  n = winsA + winsB
  print("竞技分析开始,共模拟{}场比赛".format(n))
  print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
  print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():
  printIntro()
  probA, probB, n = getInputs()
  winsA, winsB = simNGames(n, probA, probB)
  printSummary(winsA, winsB)
main()

这个代码中,在一些函数后用try.....except测试了一遍,如果有错误会分别对某个函数进行报错。

因为小编在参数中故意写错,故会出现错误

运行结果如下:

基于Python测试程序是否有错误

当然还可以执行多个函数及条件的测试都可以,这样可以实现自动化测试业务代码,还可以穿插在程序中你需要的地方

做检测等,这样你的程序会按流程走,这块又可以得到你要的测试效果。来看看代码如下:

x = 0
lis_y = [i for i in range(80,85)]

def test(x,y):
  print(x+y," ")

def test1(x,y):
  print(x*y)

try:
  while x < 20:
    for y in lis_y:
      test(x,y)
      test1(x,chr(y))
      x+=1
except:
  print('Error')

运行结果如下:

基于Python测试程序是否有错误

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用matplotlib绘制折线图教程
Feb 08 Python
Mac 上切换Python多版本
Jun 17 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python处理大日志文件
Jul 23 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python中加背景音乐如何操作
Jul 19 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
python opencv肤色检测的实现示例
Dec 21 Python
Python实现视频自动打码的示例代码
Apr 08 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 #Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 #Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 #Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 #Python
Python验证码截取识别代码实例
May 16 #Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
You might like
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php类常量的使用详解
2013/06/08 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
node网页分段渲染详解
2016/09/05 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
Python 的 Socket 编程
2015/03/24 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
C++的几个面试题附答案
2016/08/03 面试题
竞聘上岗演讲稿
2014/05/16 职场文书
计算机专业自荐信
2014/05/24 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
创业计划书之家政服务
2019/09/18 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫