def METHOD_NAME(self, iters=15):
    """ go into a loop that stresses jumping to slices by moving crosshair
    """
    import time
    sliceNode = slicer.util.getNode('vtkMRMLSliceNodeRed')
    dims = sliceNode.GetDimensions()
    layoutManager = slicer.app.layoutManager()
    sliceViewNames = layoutManager.sliceViewNames()
    # Order of slice view names is random, prefer 'Red' slice to make results more predictable
    firstSliceViewName = 'Red' if 'Red' in sliceViewNames else sliceViewNames[0]
    firstSliceWidget = layoutManager.sliceWidget(firstSliceViewName)
    elapsedTime = 0
    startPoint = (int(dims[0] * 0.3), int(dims[1] * 0.3))
    endPoint = (int(dims[0] * 0.6), int(dims[1] * 0.6))
    for i in range(iters):
        startTime = time.time()
        slicer.util.clickAndDrag(firstSliceWidget, button=None, modifiers=['Shift'], start=startPoint, end=endPoint, steps=2)
        slicer.app.processEvents()
        endTime1 = time.time()
        slicer.util.clickAndDrag(firstSliceWidget, button=None, modifiers=['Shift'], start=endPoint, end=startPoint, steps=2)
        slicer.app.processEvents()
        endTime2 = time.time()
        delta = ((endTime1 - startTime) + (endTime2 - endTime1)) / 2.
        elapsedTime += delta
    fps = int(iters / elapsedTime)
    result = "number of slice views = %d, fps = %g (%g ms per frame)" % (len(sliceViewNames), fps, 1000. / fps)
    print(result)
    self.log.insertHtml('<i>%s</i>' % result)
    self.log.insertPlainText('\n')
    self.log.ensureCursorVisible()
    self.log.repaint()