selenium+python用例执行结果及测试报告
selenium+python用例执行结果及测试报告ui自动化操作只是模拟人工去操作,只是一个过程,但实际这个操作过程导致的结果是否正确?如何去做?元素判断吗?生成截图?
1、比如登陆,100个用例,90个无效用例,需要登陆100次
2、可以根据元素定位判断是否登陆成功
3、但90个无效用例登陆失败,反馈结果是否正确?是否只能通过截图来验证?
4、这样下来截90个图一一去核对用例和图验证,是不是太麻烦了?
是不是需要添加断言,类似于loadrunner中的检查点。 测试菜鸟梦 发表于 2017-3-1 12:34
是不是需要添加断言,类似于loadrunner中的检查点。
不是 测试菜鸟梦 发表于 2017-3-1 12:34
是不是需要添加断言,类似于loadrunner中的检查点。
恩差不都吧应该 1:断言:
def test_1(self):
driver = self.driver
driver.get(self.base_url + "/login")
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys("1")
driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys("1")
driver.find_element_by_id("login-btn01").click()
for i in range(60):
try:
if u"验证失败!请检查您的登录信息, 并重试一次." == driver.find_element_by_id("loginErrorInfo").text: break
except: pass
time.sleep(1)
else: self.fail("time out")
2: 对比图片:
from PIL import Image
def make_regalur_image(img, size = (256, 256)):
return img.resize(size).convert('RGB')
def split_image(img, part_size = (64, 64)):
w, h = img.size
pw, ph = part_size
assert w % pw == h % ph == 0
return [img.crop((i, j, i+pw, j+ph)).copy() \
for i in xrange(0, w, pw) \
for j in xrange(0, h, ph)]
def hist_similar(lh, rh):
assert len(lh) == len(rh)
return sum(1 - (0 if l == r else float(abs(l - r))/max(l, r)) for l, r in zip(lh, rh))/len(lh)
def calc_similar(li, ri):
# return hist_similar(li.histogram(), ri.histogram())
return sum(hist_similar(l.histogram(), r.histogram()) for l, r in zip(split_image(li), split_image(ri))) / 16.0
def calc_similar_by_path(lf, rf):
li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))
return calc_similar(li, ri)
def make_doc_data(lf, rf):
li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))
li.save(lf + '_regalur.png')
ri.save(rf + '_regalur.png')
fd = open('stat.csv', 'w')
fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram()))))
# print >>fd, '\n'
# fd.write(','.join(map(str, ri.histogram())))
fd.close()
import ImageDraw
li = li.convert('RGB')
draw = ImageDraw.Draw(li)
for i in xrange(0, 256, 64):
draw.line((0, i, 256, i), fill = '#ff0000')
draw.line((i, 0, i, 256), fill = '#ff0000')
li.save(lf + '_lines.png')
if __name__ == '__main__':
for i in xrange(1, 6):
printi
img1 = 'C:\\work\\dart\\src\\test\\e2e\\spec\\test\\result\\login\\'+str(i)+'.png'
print img1
img2 = 'C:\\work\\dart\\src\\test\\e2e\\spec\\test\\old\\login\\'+str(i)+'.png'
print img2
print 'test_case_%d: %.3f%%'%(i,calc_similar_by_path(img1, img2)*100)
# make_doc_data('test/TEST4/1.JPG', 'test/TEST4/2.JPG')
看问题同学是想问如果判断用例执行结果(ps:失败or通过)
1:拿登录来说,登录失败 UI上会有提示吧可以通过这个提示来判断,然后 把用例结果记录下来(比如:可以写在excel里);当然也可以用pyunit自带的断言库做一些简单的断言(建议自己写断言判断方法)。
2:深入问下同学,你自动化测试用例怎么管理?测试报告怎么自动发送? 用例的数据如何组织? 怎样才能利用框架实现代码复用和框架的扩展性?请仔细思考下~ 菜鸟@大虾 发表于 2017-3-1 13:41
看问题同学是想问如果判断用例执行结果(ps:失败or通过)
1:拿登录来说,登录失败 UI上会有提示吧可以通 ...
嗯 谢谢,我目前学习中
1、失败用例提示可以获取是吧?获取到我导入excel,断言目前还没有学到,目前我只是用元素定位判断呢,感觉应该用断言可靠性更高点
2、没有什么用例了,我只是excel记录了用户名和密码导入的,然后测试结果再导入excel,我还没有到这么深入的:'( hyj785 发表于 2017-3-1 13:39
1:断言:
def test_1(self):
driver = self.driver
谢谢!
我在学习中,我会慢慢研究下的 学习
页:
[1]