核心提示:背景为了将自动化测试报告做的高大上,结果一目了然,对HTMLTestRunner报告生成文件进行了一定的优化,增加了饼状图。原来的报告如下代码修改1、打开HTMLTestRunner.py,在原有的j...
背景
为了将自动化测试报告做的高大上,结果一目了然,对HTMLTestRunner报告生成文件进行了一定的优化,增加了饼状图。原来的报告如下
代码修改
1、打开HTMLTestRunner.py,在原有的js代码下新加一个画饼状图的function,做到可以讲pass, error, fail分别进行统计,以不同颜色生成饼状图。
function drawCircle(pass, fail, error){ var color = ["#6c6","#c60","#c00"]; var data = [pass,fail,error]; var text_arr = ["pass", "fail", "error"]; var canvas = document.getElementById("circle"); var ctx = canvas.getContext("2d"); var startPoint=0; var width = 20, height = 10; var posX = 112 * 2 + 20, posY = 30; var textX = posX + width + 5, textY = posY + 10; for(var i=0;i<data.length;i++){ ctx.fillStyle = color[i]; ctx.beginPath(); ctx.moveTo(112,84); ctx.arc(112,84,84,startPoint,startPoint+Math.PI*2*(data[i]/(data[0]+data[1]+data[2])),false); ctx.fill(); startPoint += Math.PI*2*(data[i]/(data[0]+data[1]+data[2])); ctx.fillStyle = color[i]; ctx.fillRect(posX, posY + 20 * i, width, height); ctx.moveTo(posX, posY + 20 * i); ctx.font = 'bold 14px'; ctx.fillStyle = color[i]; var percent = text_arr[i] + ":"+data[i]; ctx.fillText(percent, textX, textY + 20 * i); } }
2、将pass, fail, error作为三种参数,放到方法中。
%(test_list)s <tr id='total_row'> <td>统计</td> <td>%(count)s</td> <td>%(Pass)s</td> <td>%(fail)s</td> <td>%(error)s</td> <td> </td> <td> </td> </tr> </table> #以下是新家的代码 <script> drawCircle(%(Pass)s, %(fail)s, %(error)s) </script>
3、以canvas画出这个图
<p class="piechart"> <p> <canvas id="circle" width="350" height="168" </canvas> </p> </p>
结果
运行自动化框架,看一下生成的报告
饼状图是生成了,位置不太对,在代码中调一下位置:
.piechart{ position:absolute; ; top:20px; left:300px; width: 200px; float: left; display: inline; }
再看一下:
OK了。