安卓自动化测试总结(五)——测试结果发送及内容展示

安卓自动化测试总结(五)——测试结果发送及内容展示

  使用jenkins自动构建并完成自动化测试后,如果想看测试结果,都需要打开jenkins构建地址,找到对应的构建及构建结果。这样做很麻烦,关心自动化测试结果的人可能在测试用例未执行或没有执行完时,多次打开该构建;或者在运行多次错误结果后,也未看过执行结果。所以,提出了使用邮件发送测试结果的想法。

发送测试结果邮件

借用我们接口测试的python发邮件代码,实现了安卓自动化测试结果的自动发送。其发送邮件的示例如下:

def sendMail(self):

  smtp = smtplib.SMTP()

  smtp.connect(self.smtpserver,25)

  smtp.login(self.sender,self.password)

  self.content =base64.b64encode(self.content)

  msg ="From:%s\nTo:%s\nSubject:%s\nContent-Type:text/html\nContent-Transfer-Encoding:base64\n\n%s"% (self.sender,self.receiver,self.subject,self.content)

  smtp.sendmail(self.sender,self.receiver, msg)

  smtp.close()

  其中self.sender,self.receiver,self.subject,self.content分别是发件人、收件人、主题和发送内容。我们发送邮件前,主要修改的是发送内容,可以是文本内容,也可以是表格或更复杂的邮件内容。

发送junit结果

  发送文本或表格内容虽然可以满足测试要求,但没有jenkins中显示的junit结果简单明了。所以考虑直接借用jenkins中的junit测试结果。这样既减少代码量,又可以直接关联回jenkins中的对应链接。读取jenkins对应页的python代码如下。

user_agent ='Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13(KHTML, likeGecko) Version/3.1Safari/525.13'

values = {'language':'Python'}

headers = {'User-Agent': user_agent }

data = urllib.urlencode(values)

req= urllib2.Request(urlConst, data, headers)

context = ssl._create_unverified_context()

response = urllib2.urlopen(req, context=context)

the_page = response.read()

testresult = the_page[the_page.index('

Test Result

') + len('

Test Result

):the_page.index('')]

testresult = testresult.replace('ahref="','ahref="'+ urlConst)

testresult = testresult.replace('

  把testresult的内容,增加到发送的邮件self.content,就可以让邮件显示测试结果网页了。测试结果网页如下:


安卓自动化测试总结(五)——测试结果发送及内容展示_第1张图片

只发送有错误执行结果的邮件

  由于测试自动化在开发提交代码后即立即执行,也因为有时进行调试导致更多的测试次数,很多人觉得邮件发送比较频繁。我们采取的改进方法是,在unstable状态下,才触发发送邮件的job。


安卓自动化测试总结(五)——测试结果发送及内容展示_第2张图片

合并多个junit结果

  由于安卓界面自动化的用例有50多个,如果运行在一个jenkins任务,则运行时间比较长,在失败时,也可能有更多意想不到的问题。所以,每个jenkins任务仅执行10多个用例,从冒烟测试、一般测试、很慢的测试等多个角度考虑进行分组。但这样存在一个问题,如何得到一个完整的结果,而不是得到零碎的片面结果,由收到测试结果的人自己在去对比和合并,才能得到一个整体的印象。

  后来想到的就是把测试结果从各个jenkins任务拷贝过来,然后进行合并,把合并后的结果,像一次执行的结果一样,发送邮件。因为,合并后的结果,本身就和一次执行得到的结果没有区别。

  自动化结果的展示和邮件发送,不同的人提出了不同的问题,才逐渐改进成目前的样子。后续,将根据对当前结果的意见,继续改进,以便更能符合测试和开发的要求。

你可能感兴趣的:(安卓自动化测试总结(五)——测试结果发送及内容展示)