最近刚刚上班,上级领导给了一个需求,让我搞一下jira批量添加用户的python脚本。
我们搭建好jira服务后,通过浏览器是可以访问Jira-web的,我们通过鼠标的点击和键盘的
敲打是可以手动为jira添加一定量的用户,现在我们需要脚本来驱动浏览器自动为我们
添加已经按照某种格式添加好的大量用户,这里面就会涉及浏览器的自动化测试框架Selenium
,它是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像我们真是客户端
人工操作一样,支持的浏览器包括IE(7,8,9,10,11),Firefox,Safari,Google Chrome,
Opera等,这个工具的主要功能包括:测试系统的兼容性-测试你的应用程序看是否能够很好的工作在不同浏览器和
操作系统之上。
> 框架底层使用JavaScript模拟真是用户对浏览器进行操作,测试脚本执行时,浏览器自动按照脚本代码做出点击,
输入,打开,验证等操作,就像真是用户所做的一样, 从终端用户的角度测试应用程序。
> * 使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别
> * 使用简单,可使用Java、Python等多种语言编写用例脚本
Selenium的配置
1 安装Selenium模块:pip install Selenium
2 下载浏览器驱动,Selenium3.x调用浏览器必须有一个webdriver驱动文件
> Chrome驱动文件下载:点击下载chromedrivehttps://chromedriver.storage.googleapis.com/index.html?path=2.35/
> Firefox驱动文件下载: 点击下载geckodriverhttps://github.com/mozilla/geckodriver/releases
下载之后,解压到任意目录(路径不要有中文)
Selenium的调用简单demo
```python
from selenium import webdriver
# 如是chrome浏览器的驱动
driver = webdirver.Chrome("D:\driver\chromedriver.exe")
# 如果是firefox浏览器的驱动
driver = webdriver.Firefox(executable_path="D:\driver\geckodriver.exe")
# 如果谷歌和火狐浏览器驱动的目录加入了环境变量之中,可以直接下面写代码
# 谷歌浏览器驱动
driver = webdirver.Chrome()
# firefox浏览器驱动
driver = webdirver.Firefox()
```
实验环境:python3.7.6+jira7.12.0+mysql5.7
下面我给出jira批量添加用户的全部代码:
```python
"""自动创建Jira的学生账号"""
from selenium import webdriver
from time import sleep
import csv
driver = webdriver.Chrome(r'D:\chromedirver\chromedriver.exe')
driver.get("http://192.168.1.129:8080/login.jsp") #jira的网址
data_set = r'D:\jirauser\userdata.csv'
sleep(5)
# 输入jira web端登陆的用户名和密码
driver.find_element_by_id('login-form-username').send_keys('zhaoyi')
driver.find_element_by_id('login-form-password').send_keys('123')
driver.find_element_by_id('login-form-submit').click()
sleep(3)
driver.find_element_by_id('admin_menu').click()
driver.find_element_by_id('admin_users_menu').click()
driver.find_element_by_id('login-form-authenticatePassword').send_keys('123')
driver.find_element_by_id('login-form-submit').click()
driver.implicitly_wait(3)
# 利用csv模块把csv文件中的所有用户的信息都读取到要给列表中
# 每个用户的信息是列表中一个元素,该元素也是一个拥有完整单个用户信息的列表
reader = csv.reader(open(data_set,encoding='utf-8'))
rows = [row for row in reader]
#print(rows)
for i in rows:
print(i)
driver.implicitly_wait(1)
driver.find_element_by_id('create_user').click()
driver.find_element_by_id('user-create-username').send_keys(i[0])
driver.find_element_by_id('password').send_keys(i[1])
driver.find_element_by_id('user-create-fullname').send_keys(i[2])
driver.find_element_by_id('user-create-email').send_keys(i[3])
driver.find_element_by_id('user-create-submit').click()
sleep(10)
driver.close()
```