基于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使用新浪微博api上传图片到微博示例
Jan 10 Python
Python实现的批量下载RFC文档
Mar 10 Python
python概率计算器实例分析
Mar 25 Python
python Celery定时任务的示例
Mar 13 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
python跨文件使用全局变量的实现
Nov 17 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
利用Python判断你的密码难度等级
Jun 02 Python
如何使用pdb进行Python调试
Jun 30 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
一个查看session内容的函数
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
python实现接口并发测试脚本
2019/06/25 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
项目建议书格式
2014/03/12 职场文书
小学生作文评语
2014/04/18 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
赡养老人协议书
2014/04/21 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
班级标语大全
2014/06/21 职场文书
大学生工作求职信
2014/06/23 职场文书
营销学习心得体会
2014/09/12 职场文书
长城导游词400字
2015/01/30 职场文书
简历自我评价优缺点
2015/03/11 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技