易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3808|回复: 1
收起左侧

利用python实现批量自动化运维脚本案例

[复制链接]
发表于 2017-12-20 22:04:57 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 3 金钱 才能浏览
 楼主| 发表于 2017-12-20 22:16:14 | 显示全部楼层
Python自动化测试--一个简单的自动化测试脚本--批量执行测试用例8 ^- \9 |( f& t; ], y. x' b
4 c& Q1 J! l; d. \
#coding=utf-87 o5 j' @+ p" j+ {2 ~! C0 D
from selenium import webdriver
6 k2 ?& `" H; U- S* ]from selenium.webdriver.common.by import By0 W. ~8 K3 M, h8 v* h
from selenium.webdriver.common import keys4 _6 R8 e" Q, {
from selenium.webdriver.support import select
( X  Q  s1 P. Q. {2 ffrom selenium.common import exceptions* S1 o. }9 t3 ?0 R( ?/ k
import unittest,time,re. N2 Q: b& t1 D7 h
class Baidu(unittest.TestCase):  y  W7 U5 X& \7 P# R( |/ [! H* m
    #setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。这里将浏览器的调用和URL的访问放到初始化部分。#: s" j$ N% G- [3 |- q2 G5 s; Z; I
    def setUp(self): 9 e5 N5 Q  H% f3 ~
        self.driver=webdriver.Firefox()0 J1 p2 _" N# o. ~
        self.driver.implicitly_wait(30)
: c2 n# s' ^8 H2 N9 d7 {        self.base_url='http://www.baidu.com/'
. W. f" q2 c) M6 j* K        self.verificationErrors=[]  #脚本运行时,错误的信息将被打印到这个列表中#$ g3 R6 }& y" [7 Y/ I2 ?
        self.accept_next_alert=True  #是否继续接受下一个警告#4 A; t7 C: e4 j( C# Z8 t2 K( g0 O$ w
    #百度搜索用例/ N0 ]# X3 ~2 c6 Z  p
    def test_baidu_serch(self):6 Y; g; m9 O8 y+ F0 E# [: }
        driver=self.driver* q. r& I. y0 R$ x  |
        driver.get(self.base_url)# \1 O/ F8 D3 u2 S  Q( d9 J" [
        driver.find_element_by_id("kw").send_keys("selenium webdriver")
8 g7 ?& B- _; ]4 g% A# p. x        driver.find_element_by_id("su").click()' x0 B  ^6 @+ @& {. q6 b( j+ S7 I
        time.sleep(2)
: ~2 `5 I, [- R, |4 a        driver.quit()! Z9 j8 l' i2 z9 L
    #百度设置用例
) k6 s' k# N+ t    def test_baidu_set(self):
( b  y; X3 e/ E. L* d        driver=self.driver4 x4 Z, o" _, e* [0 d, N
        #进入搜索设置页
) b* y7 m2 |7 w$ ^5 c1 o, Y6 i        driver.get(self.base_url+'gaoji/preferences.html')  
1 L( Y' E6 }" ~1 c* w        m=driver.find_element_by_name('NR') ; C; u6 k3 O9 H! L# J
        #设置每页搜索结果为100条,先找到ID=NR的标签,再找到ID=NR标签下的option标签value值等于100的选择按钮
( x1 @( M$ ~7 Q1 ]! U! q        m.find_element_by_xpath("//option[@value='100']").click()
6 j' G) x8 F% S& Q! p2 z        time.sleep(2)3 V3 u8 A# C; k4 e( z* c! i
        #保存设置的信息
9 x  T* T) V* c& y4 N        driver.find_element_by_xpath("//input[@value='保存设置']").click()
6 V! J+ d# \: m* F7 h+ r' N' \$ H        time.sleep(2)
8 c1 B2 R. U1 ]& z        n=driver.switch_to_alert()
1 d5 d. n, ]3 W  t        n.accept()+ h7 H5 {5 w+ d) u( \
    def tearDown(self):
* ^% p7 i8 I  z; \: u        self.driver.quit()
8 s5 r" G. i' |) S$ T8 B8 e        self.assertEqual([],self.verificationErrors)2 e" d) o9 S( H% L
        '''8 w$ f- z/ A+ R: T9 p
        tearDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出浏览器等。 5 j- q# r6 ~" S3 E# s
        self.assertEqual([], self.verificationErrors) 是个难点,  D4 p& J- V- G0 [
        对前面verificationErrors方法获得的列表进行比较;如查verificationErrors的列表不为空,输出列表中的报错信息。'''
4 D" ~6 h* B+ B# I, K) tif __name__=="__main__":8 H' ^$ t- j5 i: }7 G, |
    unittest.main() #执行用例#% F) r0 E6 c# ?2 @2 m

& q; o& i$ a% O( n+ ^/ Y'''
* ^" r8 A( ^  o/ y3 s! B% _执行结果如下:
8 @, K& o% q# @$ O  MRan 2 tests in 30.719s  执行测试完所有测试用例,用了70.719S
6 f  l" y$ R  m! x
4 k. r) ]1 y9 L3 H, U; Z( nok 没有问题  S6 A; i" S$ l9 |( r9 }" x

& ^. M( i6 Y! \( A5 ^如果你在用例中故意设置一个错误,例如:5 s0 s1 G  c$ r! u- C
百度设置用例中增加这样一行代码,查找到name为DR的标签,并单击它,因为这个是没有的,找不到这个标签,系统会报错,/ n5 U: f  J% h5 e5 A- C% {
driver.find_element_by_name('DR').click()1 k+ g* D3 \& a
这时执行结果显示如下:% q- Q! E; l$ V5 A% V5 B! m2 t
Ran 2 tests in 70.719s
; j: g' }1 u! o. a# z
% W1 L6 |+ l9 G. I& g6 cFAILED (errors=1)
. f; E, Y9 \  \4 _" d) V: X'''
$ Y$ e6 ^0 Z5 C5 r" v% \
9 f0 Q& m0 G7 j" D/ w* y" [4 j: V
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 01:11 , Processed in 0.050263 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表